「定数には値を代入できません。」の原因・解決方法

エラー内容

VBAコンパイル時に、「定数には値を代入できません。」と表示される。

原因と解決方法

2つの原因と、その解決方法が考えられます。

原因1.定数として定義している

解説

Constを使って定数として定義した変数に、コードの途中で新しい値を代入しようとすると、このエラーが発生します。

定数は最初に値を設定したら、後から値を変更できません。

 

解決方法

定数ではなく、普通の変数として定義します。
サンプルソースの場合は、ConstをDimに修正します。

 

原因2.VBAの組み込み定数に代入している

解説

VBAであらかじめ用意されている定数(組み込み定数)に、値を代入しようとすると、このエラーが発生します。

サンプルソースの場合、vbBlackには黒を表す0が格納されています。
この値は変更することができません。

解決方法

組み込み定数へ値を代入するコード事態を削除します。

または、別で変数を定義し、その変数に値を代入します。

lngPrintColorに値を代入する時は、数値で設定するより、定数vbRed、vbBlackを使った方が可読性もあがります。
今回はエラーを理解しやすいように、サンプルソースでは数値を代入しています。

 

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
VBAエラー原因・解決方法
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました