マクロをプログラムしたことがある場合は、Dimキーワードを使用して変数を定義する方法に精通している可能性があります。たとえば、MyVarという名前の整数変数を次のように定義できます。

Dim MyVar As Integer

これは非常に簡単で、コードで正常に機能します。コードに数行を保存するために、1行に複数の変数を定義したくなるかもしれません:

Dim x, y, z As Integer

BASIC言語の一部のバージョンでは、これにより3つの変数が定義され、それぞれが整数として初期化されます。 VBAでも正しく実行されているように見え、エラーは生成されません。ただし、小さな問題があります。実際には、最後の変数(z)のみが整数として定義されています。

次のコードを使用すると、これがどのように機能するかを確認できます。

Sub DimTest()

Dim x, y, z As Integer     Dim sTemp As String

sTemp = "x is type " & VarType(x) & vbCrLf     sTemp = sTemp & "y is type " & VarType(y) & vbCrLf     sTemp = sTemp & "z is type " & VarType(z)



MsgBox sTemp End Sub

マクロを実行すると、メッセージボックスに、xとyの変数タイプが0であることが示されます。これは、変数がバリアント(宣言されていない変数のデフォルトのデータ型)であることを意味します。最後のメッセージボックスのみ(zの場合)

は、整数を意味する2の変数タイプを示しています。

解決策は、変数を1行に1つずつ宣言するか、次のように各変数に完全な構文を使用することです。

Dim x As Integer, y As Integer, z As Integer

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

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

link:/ excelribbon-Declaring_Variables [変数の宣言]