学習日:2024/07/04
参考書:ExcelVBA本格入門 技術評論社(著者 大村あつし)
1-5から1-7まで(P36~P56)
【学習内容のまとめ】
-
マクロの構成
マクロは、タイトル・コメント・本文の順に構成されている
マクロの1行目は[Sub タイトル()]
マクロの最終行は[End Sub]
-
マクロの基本用語
キーワード(予約語みたいなもの) → Sub、Range、Select、ActiveCell、FormulaR1C1、With、Falseなど
ステートメント(命令文) → マクロではステートメント単位で命令が実行される
コメント(説明文) → ’(シングルクォーテーション)で始まり、本文と区別するため緑色で表示。ステートメントの横にも書き込める
-
VBEを起動した直後に表示されるウィンドウ
VBEの画面構成 → プロジェクトエクスプローラー、プロパティウィンドウ、コードウィンドウ、イミディエイトウィンドウ
コードウィンドウの表示 → プロジェクトエクスプローラーからモジュール名をクリックするなど
イミディエイトウィンドウ表示のショートカット → [Ctrl]+Gキー
-
モジュールとは?プロジェクトとは?
プロジェクトエクスプローラーにはプロジェクトが表示されている
-
標準モジュールを挿入する
手動でモジュールを挿入 → 新しい[標準モジュール]ボタンをクリック
-
標準モジュールを削除する
プロジェクトエクスプローラーからモジュールを右クリック → [モジュールの解放] → 確認メッセージでエクスポートしますか?[いいえ]を選択
(エクスポートとはモジュールを別ファイルで保存すること、ほぼ必要ない)
効率よくコーディングするための機能3つ
-
キーワードのスペルは自動的に変換される
大文字小文字は自動変換されるので意識する必要はない(スペルは正しい必要がある)
(”a1”などのダブルクォーテーションで囲んだ文字列の大文字小文字は自動変換されない)
-
自動クイックヒントと自動メンバー表示
自動クイックヒント → ステートメント入力の際に、構文を自動的にヒントとして表示してくれる機能
自動メンバー → 使用できるキーワードの候補一覧を表示してくれる機能
-
入力候補
マクロで使うキーワードの一部を入力するとキーワード一覧を表示してくれる機能
キーワードの一部を入力 → [Ctrl]+[Space]キー → [↑][↓]で候補を選択し[Tab]キー
VBEでも使えるショートカットキー
- [Ctrl]+[S] → 上書き保存
- [Ctrl]+[X] → 切り取り
- [Ctrl]+[C] → コピー
- [Ctrl]+[V] → 貼り付け
- [Ctrl]+[F] → 検索
- [Ctrl]+[Z] → 元に戻す
デバッグで修正する必要がある3種類のエラー
-
コンパイルエラー(構文のミス)
コーディング中に間違った構文でステートメントを記述して入力を確定すると発生するエラー
-
実行時エラー(存在しないファイル名を指定するなどのミス)
ブック内に存在しないシートを選択しているなど、マクロ実行時に判明して発生するエラー
実行時エラーが発生するとマクロは中断状態になるため終了させるときは[終了]をクリック
[デバッグ]をクリックするとエラー原因となったステートメントが黄色く反転して、左端の余白インジケーターバーには矢印が表示される
-
デバックと論理エラー(プログラマーの作業ミスなど)
バグ → マクロの誤作動原因となるエラー
デバッグ → バグを取り除く作業
論理エラー → 構文的には問題なく実行できるが、プログラマーの意図しない動きをするエラー
-
ステップ実行でステートメントの動作を確認する
特にわかりにくいのは論理エラーで、構文的な問題などがないとエラーメッセージは表示されない
バグを発見するには、疑わしいと思われる位置でマクロの実行を中断し、ステートメントの動作を1ステップずつ確認する
デバッグツールバーの表示 → VBEを起動 → メニューバーかツールバーで右クリック → [デバッグ]
デバッグツールバーを表示したら、余白インジケーターにブレークポイントを設定 → デバッグ実行時にそのステートメントに差し掛かるとマクロの実行が中断され、ステートメントの余白インジケーターバーには矢印が表示され黄色く反転する → デバッグツールバーの[ステップイン]を押すと次のステートメントにフォーカスが移動する → 1つ前のステートメントが期待通りに動作したかを確認する → エラー原因が特定できるまでデバッグを繰り返す → エラーが特定できたらデバッグツールバーの[継続]か[リセット]をクリック
-
ブレークポイントを解除する
余白インジケーターバーの●をクリックする
-
イミディエイトウィンドウ
マクロ実行中に緊急的にワークシートを追加したい場合などに、マクロを中断したり新規作成することなくステートメントを実行できる
イミディエイトウィンドウを使用したら、[Ctrl]+[A]キーですべてを選択し[Delete]キーで削除