VBAが嫌いな人が書いたVBA入門記事その2です。初心者の人も最低限だけ身に付けてPythonに移行しましょう。→VBAユーザーのためのPython入門 ~xlwingsでExcelからPythonを呼び出す~
記事一覧
- Excel VBA入門 ~その1 Excel VBAとは~
- Excel VBA入門 ~その2~
- Excel VBA入門 ~その3 基礎1~
- Excel VBA入門 ~その4 基礎2~
- Excel VBA入門 ~その5 Tips~
- Excel VBA入門 ~その6 アンチパターン~
エディターを開く & 準備
Excelを起動し、Alt + F11
でVBAエディターを開く。
最初の設定を行う。 ALt
-> T
-> O
でオプション画面を開き、
- オプション画面の
編集
タブで、自動構文チェック
のチェックを外す。 - 同じく
編集
タブで、変数の宣言を強制する
をチェックする。変数の宣言を強制する理由はこちら - オプション画面の
ドッキング
タブで、イミディエイトウィンドウ
等、表示されているものの全てをチェックする。
最初のプログラム
プロジェクト ウィンドウで開いているファイルを右クリック -> 挿入
-> 標準モジュール
で標準モジュールを作成。
Option Explicit
Sub test()
Dim msg As String
msg = "hello"
Debug.Print msg
End Sub
上記を標準モジュールに貼り付け、F5
で実行。実行後、イミディエイトウィンドウにhello
と表示される。
デバッグ
Debug.Print msg
の左側の枠をクリックし、ブレーク ポイントを設定する。
先ほどと同様にF5
で実行すると、ブレーク ポイントでマクロが停止する。
デバッグでできること:
-
F8
でステップ実行が可能(ステップ オーバー、ステップ アウトも) - イミディエイトウィンドウで簡単なコードを実行可
- ローカル ウィンドウで変数の状態を確認可
- ウォッチ ウィンドウで変数のウォッチまたは指定した条件でのブレークが可能
- 左側の枠にある黄色い矢印を動かすことで、実行中の行をずらすことが可能。
マクロの記録
Excelをアクティベイト -> リボンの開発
タブ(ALT, L
) -> マクロの記録
(R
) でマクロの記録を開始。開発
タブ -> 記録の停止
ボタンで記録を停止。
開始から停止までの間に行ったExcel上での操作が記録され、VBAのモジュールに保存される。
注意: 読みにくいコードが生成されるため、そのまま利用すると保守が辛くなる。行いたい操作を実現するための方法(オブジェクトやそのメンバーの使い方)の確認に留めるべき。