Excelのマクロを学習する中で、他の人が作ったVBAコードを見ると、
宣言部分に「Const」という単語を見かけることがあるかと思います。
- 「Const」っていったい何なの?
- 「Const」の使い方や書き方を知りたい
- 「Dim」との違い知っておきたい
このような考えに至ったのではないでしょうか。
この記事を読むことで、下記のことがわかります。
- VBAの「Const」について学べる
- 「Dim」との違いを知ることができる
- 「Const」の使い方・書き方を学べる
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします
VBA(Excelマクロ)の「Const」とは?
「Const」は、定数(変更されない値) を宣言する時に使うVBAのキーワードです。
定数(Constant)は、一度設定すると変更できない固定の値を指します。
定数の対義語に「変数」があります。( 定数 ⇔ 変数 )
前提知識{変数の宣言や使い方}
変数は中身を自由に入れ替えることができますが、
定数は入れ替えることができないと言えばわかりやすいでしょうか。
では、Constを使った定数の宣言や使い方について見ていきましょう。
Constを使った定数の宣言方法と使い方
定数の使い方を説明する前に、まずは宣言方法をお見せします。
宣言方法
基本構文は以下のとおりです。
' ▼定数宣言の基本構文
Const 定数名 As 定数の型 = 値
' ▼使用例
Const NAME As String = "Utatane"
定数の宣言は「Const」から始まります。
変数の場合は「Dim」ですが、定数は「Const」です。
次に定数名の付け方ですが、ルールは変数と同じです。
しかしながら1点違うところがあり、定数名は全て大文字で記述するのが一般的です。
必ずそうしなければならないということはないのですが、暗黙の了解みたいなものでしょうか。
パっと見ただけで定数とわかるように大文字で記述しましょう。
型については変数と同じですので割愛します。
変数なら型を指定して宣言終了ですが、定数は違います。
「=(イコール)」の後に代入する値を指定します。
もちろん型に応じた値を指定してください。
これで定数の宣言は終了です。
では、宣言をした後の定数を実際に使ってみましょう。
簡単な使い方
前提知識{「Debug.Print」で値を表示させる方法}
下記VBAコードは、Constで宣言した定数をイミディエイトウィンドウに表示しただけの例です。
Sub 定数()
Const NAME As String = "Utatane"
Debug.Print "よくぞ参られた " & NAME & " 殿"
End Sub

前項でも説明しましたが、定数はプログラムの途中で値を変更することができません。
逆に「名前やID」など、途中で変更できないという点では安全な場合もありますので、
うまく活用してください。
その他の点は変数と同じ扱い方で大丈夫です。
マクロが完成したら、実行して動作を確認してみましょう。

エクセル内に作成した自作のボタンを押してマクロを実行させることも可能です。
ボタンの作り方は、下記記事でわかりやすく解説しております。
ショートカットキーを押すことでマクロを実行させることもできます。
詳しくは下記記事をご参考ください。
少し高度な使い方
定数を使って計算をすることも可能です。
代表的なのは、定数に税率を代入しておき、税込み価格を算出するというものです。
下記のVBAコードを見てください。
Sub 定数の計算()
Const TAX_RATE As Double = 0.1
Dim price As Double
price = 10000
SalesPrice = price * (1 + TAX_RATE)
Debug.Print "税込価格は " & SalesPrice & " 円です。"
End Sub
税込み価格がイミディエイトウィンドウに表示されました。

定数には「組み込み定数」や「列挙型」など、いろいろなものが存在します。
下記記事にまとめておりますので、興味があれば覗いてみてください。
知っ得情報{いろいろな定数}
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
今回の場合は、定数に値を再代入した場合もエラーが発生しますので、コードを確認してみてください。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBA(Excelマクロ)のConstについて解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!