目次
キャレット( ^ の記号)でコンパイルエラー発生
ExcelVBA でキャレットの記号( ^ )でべき乗の記述をしようとしたところ、コンパイルエラーが発生してしまいました。使用しているパソコンの OS は Windows11 Home 64 ビット、 Excel のバージョンは Excel for Microsoft 365 です。
今回の投稿は、このコンパイルエラーの解消方法について書いてみたいと思います。
エラーの再現
キャレットの記号( ^ )でコンパイルエラーが発生した時の状態を再現してみたいと思います。
下の画像の「 a=2^2 」の末尾で Enter キーを押すとコンパイルエラーが発生してしまいます。
下の画像は Enter キーを押してエラーが発生した状態です。
VBA のコードは以下のようになっています。
Sub Windows11_64ビット_Excel365でキャレットを使用したマクロ()
Dim a As Long
a =2^2 'この記述の後に Enter キーを押すとコンパイルエラーが発生してしまう。
End Sub
スペースを挿入
少し調べてみたところ、下記 URL のページに 64 ビットパソコンの場合のキャレット記述時の注意が記載してありました。下記のページによると、キャレットの直前にスペースを挿入すると良いそうです。
上記のコンパイルエラーの発生したマクロを以下のように修正してみました。
「a=2^2」としていた行を「a=2 ^2」に修正してみました。キャレットの記号の前に「 」半角のスペースを挿入しています。「a=2 ^2」と入力して Enter キーを押すと自動的に「a=2 ^ 2」とキャレットの記号の後にもスペースが挿入されました。
Sub Windows11_64ビット_Excel365でキャレットを使用したマクロ_スペース挿入()
Dim a As Long
a = 2 ^ 2 'キャレットの前に半角スペースを挿入している。
Debug.Print a
End Sub
上のマクロを実行してみると下の画像の結果になりました。エラーの発生もなく、イミディエイトウィンドウに「4」の数字が出力されました。
LongLong 型
64 ビット環境でのキャレットの記号は LongLong データ型の型宣言文字としての意味も持つようです。 LongLong 型の型宣言文字は「 ^ 」のようです。
- LongLong データ型 | Microsoft Docs
- https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/longlong-data-type
下記のマクロを作成してみました。 LongLong 型の型宣言文字のキャレットを使用して変数宣言を行い、 TypeName 関数でデータ型を確認してみます。
Sub LongLong型宣言()
Dim a^ '「Dim a As LongLong」と記述するのと同じ意味になるようです。
Debug.Print TypeName(a)
End Sub
上のマクロを実行すると、イミディエイトウィンドウに「 LongLong 」と出力されました。
LongLong
上のマクロの実行結果です。
私の思い付きですが、べき乗したい数値をカッコ()で囲んでみたのが以下のマクロです。下記のマクロを実行するとイミディエイトウィンドウに「4」と出力されました。べき乗の計算は正しく行えたようです。
Sub Windows11_64ビット_Excel365でキャレットを使用したマクロ_カッコ挿入()
Dim a As Long
a = (2) ^ 2 'べき乗したい数値をカッコ()で囲んでみました。
Debug.Print a
End Sub
以上、閲覧ありがとうございました。