VBAによるプログラムの作成/編集/保存/実行
マクロを作る練習
エクセルシート上に設けたボタンをクリックすると,被験者の体重と身長からBMIを計算し,結果をセルに表示させるVBAプログラム(以下,マクロという)を例に,VBAの練習を行う.
- Excelを起動する
- 新規のExcelファイル(空白のブック)を直接開く,またはメニューバーの [ファイル] タブから開く
- 下の左図のように,Sheet1中のA1セルに「被験者」,B1セルに「体重」,C1セルに「身長」」,D1セルに「BMI」,E1セルに「判定」,以下2行目以降に各被験者の体重などを示す表を作成する.BMIと判定はまだ空白のままでOK
注意)BMI:ボディマス指数はヒトの肥満度を表す体格指数で,体重/身長/身長で求められる
- メニューバーの[開発] タブをクリックし,[Visual Basic] ボタンを押す.VBAのエディターウインドウが自動で起動するはずである
注意)エクセルはタスクバーに残ったまま,消えるわけではない.
- 画面左側のプロジェクトエクスプローラの[VBAProject (book1)]を右クリックし,プルダウンメニューの [挿入] から [標準モジュール] を選択する.図のように標準モジュールが作成されることを確認する.
- 図のように右側の白いエリアにプログラムの入力を行う.図の通りの文字を半角で入力すること.ここでは意味が分からなくても問題ない.「コンマ」と「ピリオド」のタイプミスに注意すること.
講義ノート:
演算子(代入)について
マクロをボタンに登録する
- WindowsのタスクバーにあるExcelのブックを選択してExcelシートウィンドウに戻る
- メニューバーの [開発] タブをクリックし,[挿入] ボタンを押す
- プルダウンメニューから [ボタン (フォームコントロール)] を選択する
- Excelシート上の任意の場所にボタンを作成する(適当な場所でドラッグして大きさを決める)
- マクロの登録ダイアログボックスが表示されるので,[test01] を選択して(マクロ名がtest01に変わる),最後に [OK] をクリックして確定する
- 下図のようにボタンが生成される(ボタン上で右クリックするとサイズや名前を変更できる)
マクロを実行する
- 生成されたボタンを押してみる
- D2セルに被験者AのBMIが表示される
注意)入力した値に対して正しい値が表示されていることを必ず確認すること,値が出力されない,エラーが出る場合はプログラムを確認すること
講義ノート:
エラーが発生したら
マクロを保存する
- Excelメニューバーの [ファイル] タブをクリックし,[名前を付けて保存] ボタンをクリックする
- 保存先を選択する
- [ファイルの種類] のドロップダウンリストをクリック
- Excelマクロ有効ブック(*.xlsm)を選択
- [保存] ボタンをクリック
作成したマクロの解説
ポイント!)現時点では,何度ボタンをクリックしても被験者AのBMIしか算出されない
参考資料:「変数について」 「セルの指定方法について」
マクロの修正(1)
BMIの算出に加えて,標準体型か否かの判定ができるようように,マクロを修正する
- WindowsのタスクバーにあるVBAのエディターを選択してエディターに戻る
- 画面左側のプロジェクトエクスプローラの [VBAProject (Book1)] を右クリックし,プルダウンメニューの [挿入] から [標準モジュール] を選択する
- 標準モジュールにModule2が新規作成されたことを確認する
- Module1をダブルクリックし,画面右側のModule1に書かれたtest01マクロを [全て選択(Ctrl+A)] → [コピー(Ctrl+C)] を行う
- Module2をダブルクリックし,画面右側にtest01マクロを [貼り付け(Ctrl+V)] る
- 下の図のようにModule2の修正を行う
- WindowsのタスクバーにあるExcelのブックを選択してExcelシートウィンドウに戻る
- メニューバー[開発]タブをクリックし,前述と同様に2個目のボタン(マクロ名test02)を作成する
- 生成されたボタンを押してみる
修正したマクロの解説
マクロの修正(2)
繰り返し計算の下準備として,セルの参照を絶対参照から相対参照に切り替える
- WindowsのタスクバーにあるVBAのエディターを選択してエディターに戻る
- 画面左側のプロジェクトエクスプローラの [VBAProject (Book1)] を右クリックし,プルダウンメニューの [挿入] から [標準モジュール] を選択する
- 標準モジュールにModule3が新規作成されたことを確認する
- Module2をダブルクリックし,画面右側のModule2に書かれたtest02マクロを [全て選択(Ctrl+A)] → [コピー(Ctrl+C)] を行う
- Module3をダブルクリックし,画面右側にtest02マクロを [貼り付け(Ctrl+V)] る
- 下の図のようにModule3の修正を行う
- WindowsのタスクバーにあるExcelのブックを選択してExcelシートウィンドウに戻る
- ボタン2を右クリックし,「マクロの登録」からtest03マクロに登録しなおす
- ボタン2を押して動作確認をしてみる
修正したマクロの解説
マクロの修正(3)
繰り返し計算の命令文を加え,ボタン一発で被験者3名分のBMI,判定結果を出力できるように,マクロを修正する
- WindowsのタスクバーにあるVBAのエディターを選択してエディターに戻る
- 画面左側のプロジェクトエクスプローラの [VBAProject (Book1)] を右クリックし,プルダウンメニューの [挿入] から [標準モジュール] を選択する
- 標準モジュールにModule4が新規作成されたことを確認する
- Module3をダブルクリックし,画面右側のModule3に書かれたtest03マクロを [全て選択(Ctrl+A)] → [コピー(Ctrl+C)] を行う
- Module4をダブルクリックし,画面右側にtest03マクロを [貼り付け(Ctrl+V)] る
- 下の図のようにModule4の修正を行う
- WindowsのタスクバーにあるExcelのブックを選択してExcelシートウィンドウに戻る
- ボタン2を右クリックし,「マクロの登録」からtest04マクロに登録しなおす
- ボタン2を押して動作確認をしてみる
修正したマクロの解説
参考資料:「繰返し計算Forについて」
トップページに戻る