Excelでマクロを作成するときは、Visual Basic for Applications(VBA)と呼ばれるプログラミング言語を使用します。これはBASICプログラミング言語に基づいており、Excelに固有の拡張機能があります。この言語の機能の1つは、プログラムでサブルーチンを使用する機能です。たとえば、次のVBAマクロについて考えてみます。

Sub Macro1()

TestSub End Sub
Sub TestSub()

MsgBox "In the subroutine"

End Sub

この単純なマクロ(Macro1)は、サブルーチン(TestSub)を呼び出すだけで、サブルーチン内にあることを通知するメッセージボックスを表示します。 [OK]をクリックしてメッセージボックスを閉じると、サブルーチンは終了し、制御をメインプログラムに戻します。 VBAプログラムには、必要な数のサブルーチンを含めることができます。それぞれの目的は、同じコードを常に書き直す必要がないように、共通のタスクを実行することです。

サブルーチンにパラメーターを渡すこともできます。これらのパラメーターは、サブルーチンによって操作できます。たとえば、次のマクロについて考えてみます。

Sub Macro1()

A = 1     PrintIt A End Sub
Sub PrintIt(x)

MsgBox "Value: " & x End Sub

これは、変数を設定し、それをサブルーチン呼び出しでPrintItに渡す単純なマクロです。このサブルーチンは、変数の値をメッセージボックスに表示し、([OK]を押した後)呼び出し元のプログラムに戻ります。

サブルーチンは、渡されたものと同じ変数名を使用しないことに注意してください。これは、VBAがxの値(サブルーチンが受け取ることを期待するもの)を再割り当てして、Aの値(プログラムがサブルーチンに渡すもの)と一致するようにするためです。サブルーチンにパラメーターを渡す際に覚えておくべき重要なことは、プログラムがサブルーチンが期待するのと同じ数のパラメーターを渡す必要があり、パラメーターが一致するタイプで適切な順序である必要があるということです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2258)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。