StudyLog

勉強の記録など。

ExcelVBA本格入門 Chapter1②

学習日: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キー

  • モジュールとは?プロジェクトとは?

    プロジェクトエクスプローラーにはプロジェクトが表示されている

    • モジュール → Excel上のマクロ記述専用シートで、マクロはモジュールにしか作成できない。標準モジュール含めて4種類ある

    • プロジェクト → モジュールの集まりで、4種類のモジュールを束ねたもの

      (Excelブックはワークシートとグラフシートを束ねたもの)

      (プロジェクトは標準モジュール、ユーザーフォーム、クラスモジュール、Excelオブジェクトを束ねたもの)

  • 標準モジュールを挿入する

    手動でモジュールを挿入 → 新しい[標準モジュール]ボタンをクリック

  • 標準モジュールを削除する

    プロジェクトエクスプローラーからモジュールを右クリック → [モジュールの解放] → 確認メッセージでエクスポートしますか?[いいえ]を選択

    (エクスポートとはモジュールを別ファイルで保存すること、ほぼ必要ない)

効率よくコーディングするための機能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]キーで削除