「定数」とは変更できない数、値を代入した入れ物で、中身を変更できるものは変数と呼ばれます。たとえば極端に大きくてかつ固定の数字、あとでまとめて変更するかもしれないけど基本固定したい数値(消費税率)などに使用します。
ユーザーが定義できる定数をユーザー定義型の定数、これに対してVBAに元から準備されている定数を組み込み定数といいます。ここではユーザー定義型の定数について説明します。
なお、データ型やモジュールレベルとプロシージャレベル、StaticやPublicについてはDimの記事で解説しているので、そちらをご参照下さい。

ExcelVBA(マクロ)で変数を作る・宣言する方法/Dim、Static、Public、Option Explicitステートメントの使い方
VBAもプログラムですので、Excelに入力した値以外に「変数」を持つことができます。一時的に代入しておける値です。

ExcelVBA(マクロ)のデータ型まとめ/オブジェクト型変数に対するSetメソッドの使い方
VBAで変数に対して使用できるデータ型の種類、使い方、注意点のまとめです。
Constの使い方
定数の宣言
Const 定数名 = 値
Const 定数名 = 値

基本的な使い方はDimと同様で、最初にConstを付けて定数名、データ型を指定する場合はその後にAs データ型(省略した場合はVariantになります)を付けます。
ただしこれだけだとダメで、
ただしこれだけだとダメで、

定数を作った時点で値の代入が義務化されています。

なので、定数名の後に = 値を入力して値を代入てあげます。

試しにメッセージボックスで内容を表示してみます。変数と同じように使えることが確認できました。

しかしConstで作った定数に何か値を代入しようとすると、

それはできない旨エラーが出ます。ユーザー定義型の定数の値を変更するには、宣言時の値を変更する以外の方法はありません。
ConstをPublic、Privateで使用

上の例ではモジュールレベルで宣言していますが、プロシージャレベルでConstを宣言することも可能です。

もし宣言セクションでPrivateで宣言したい場合は、Private Const 定数のように頭につなげて宣言します。

Publicも同様に、Public Const 定数と宣言します。これでどのモジュールでも使用できる定数が作成されます。

なお、Constに対してStaticは使えないようです。

やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント