このセクションでは、マクロが記述されている VBA が何であるかを検討します。
VBA は、Microsoft によって開発された組み込みプログラミング言語 (Visual Basic for Applications の略) です。この言語は独立した言語ではなく、MS Office パッケージ内のプロセスを自動化することのみを目的としています。 VBA は、Excel だけでなく、Access、Word、およびスイート内の他のプログラムでも広く使用されています。
VBA は、誰でも学習できるシンプルなプログラミング言語です。一度学習すると、Excel コマンドの実行、列、行、セル値の操作、ワークシートの移動/追加/並べ替え、事前にプログラムされたメッセージの表示、独自の数式や関数の記述などができるようになります。言語の本質はオブジェクトを操作することです。
VBA コードを操作するには、デフォルトで Excel にすでにインストールされているエディター (Visual Basic Editor) が必要です。キーの組み合わせ「Alt+F11」を押すと開くことができます。
VBA のオブジェクトが何であるかを理解しましょう。
VBA オブジェクトは要素、構造粒子 Excel、つまりブック、シート、範囲、セルです。
VBA オブジェクトには階層があります。つまり、相互に従属します。 Excel の階層構造は、概略的には次のように表すことができます。
最も重要なオブジェクトは Application で、これは Excel プログラム自体に対応します。 次に、Workbook (ブック)、Worksheet (シート)、Range (範囲、または個々のセル) が続きます。
たとえば、ワークシートのセル「A1」を参照するには、階層を考慮して次のパスを記述する必要があります。
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
したがって、Excel の最小オブジェクトであるセルを参照する方法を学びました。
さらに、VBA オブジェクトは「コレクション」に属します。
VBA コレクションは、同じクラス (ブック、シートのセットなど) のオブジェクトのグループ (配列) です。はい、すべての Worksheet オブジェクトは Worksheets コレクションの要素です。つまり、コレクションもオブジェクトです。
同じオブジェクトが複数のコレクションに属することができます。たとえば、Worksheet オブジェクトも Sheetss コレクションに属します。 Sheetss コレクションには、ワークブック内のすべてのシート (シートともみなされるグラフ (Chart) とデータ シート (Worksheet) の両方) が含まれます。
VBA Excel には次のコレクションが存在します。
VBA の各オブジェクトにはプロパティがあります。たとえば、Range オブジェクトには、Value または Formula プロパティがあります。
Worksheets("Sheet1").Range("A1").Value または Worksheets("Sheet1").Range("A1").Formula
この例では、プロパティはセルに入力された値または入力された数式を表示します。
また、Formula プロパティを使用すると、数式を取得するだけでなく、それを書き留めることもできます。
MsgBox Range("A1").Formula - セル「A1」の数式を含むメッセージを受け取ります。
Range("B12").Formula = "=2+6*100" - セル "B12" に数式 "=2+6*100" を入力します。
次に、範囲またはセルの内容を操作する方法を見てみましょう。このために、VBA にはいわゆるメソッド (「何をするか」コマンド) があります。コードを記述するとき、メソッドはドットでオブジェクトから区切られます。次に例を示します。
Range("A1").Select または Cells(1,1).Select
このメソッドは、セル「A1」を選択(Select)するように指定します。
次に、このセルの値を削除しましょう。このために、次のコードを書きます。
Selection.ClearContents
ここで、プログラムは選択したもの (Selection) を「取得」し、その内容をクリアします (ClearContents)。