今回はテストの採点を題材にmoduleについて解説していきます。
ここで言うmoduleとは、ワークシートのイベント(Select_Change,Change) 以外に、データ登録、削除などに使用するボタンをクリックするイベントに伴う動作を記述していきます。
WorkSheet
Sheet1の準備
テスト採点の項目として実施期、科目、氏名、点数の4項目としました。
A列は固定、B列にデータを入力し、E列からH列にデータを蓄積します。
A1表記とCells表記
セル位置の表現としてA1表記とCells表記を説明します。
A1表記とCells表記は行と列の並びが逆になります。
VBAではCells表記を多く使用します。それは次のような使い方が出来るからです。
Cells(h, 5) = Cells(h + 2, 1) ‘氏名
Next
上記でA4からA8の値をE2からE6に転記します。
作成するmoduleでは、上表の右から左へデータが転記されます。
module
module1の準備
ワークシートの中で「Alt」+「F11」(端末によって「Fn」キーも同時に押してください)でVBE画面が開きます。
1. メニュー「挿入」から標準モジュールをクリックしてmodule1を作成します。
2. 右上の欄に「Sub Reg_07」と入力してEnterを押します。
Reg_07はmoduleの名称です、名称は変更可能です。
3. ()とEnd Subが自動的に入力されます。
4. 後ほどボタンと名称を連結します。
module1の中身
次にSub Reg_07とEnd Subの間に下記のように追記してください。
Dim h As integer ‘変数の宣言
For h = 2 To 6
Cells(h, 5) = Cells(h + 2, 1) ‘氏名
Cells(h, 6) = Cells(2, 2) ‘科目
Cells(h, 7) = Cells(h + 2, 2) ‘点数
Cells(h, 8) = Cells(1, 2) ‘期
Next
End Sub
ここで一旦ファイルを保存してください。
ボタンの作成
ボタンはフォームコントロールからのボタンと、図形を利用したボタンの2種類の方法を紹介します。
どちらかお好きな方で作成してください。
フォームコントロールからボタンの作成
開発タブ>挿入>フォームコントロールからボタンを選択してください。
[ファイル] タブで 、[オプション] タブの [ リボンのユーザー設定] > に移動します。
[リボンのユーザー設定] および [メイン タブ] の下の [開発] チェック ボックスをオンにします。
続いてボタンを配置する場所でクリックしてください。
ダイアログボックスが表示されるのでリストから先ほど保存した「Reg_07」を選択して下のOKボタンを押してください。
テキストの編集、コントロールの書式設定を利用して、ボタンのテキスト、サイズ、色をカスタマイズできます。
図形からボタンの作成
挿入タブ>図>図形から図形を選択、図形を右クリックしてテキスト編集を行います。
その他図形のサイズ、塗りつぶし、文字の色、フォントなど必要に応じて編集してください。
続いて図形を右クリックしてマクロの登録を行います。
ダイアログボックスが表示されるのでリストから先ほど保存した「Reg_07」を選択して下のOKボタンを押してください。
実行
ダイアログボックスで連結ができたら実行して試してみます。
実行前には必ずファイルの保存することを習慣にしてください。
入力欄B1にテスト実施期を入力します。
入力欄B2に科目を入力します。
入力欄B4:B8にテスト結果を入力します。
続いて登録ボタンを押した結果は右下の通りです。
このプログラムでは、繰り返しデータの上書きを行います。
次回は期の変更や科目の変更に乗じてデータが蓄積されるように修正していきます。VBAプログラム(module2)