配列は定数にはならない

配列を定数にすることはできるのか

配列は定数にできるのだろうか。

やってみた

標準モジュールの宣言セクションに、次のように書いてみた。

リスト1 標準モジュールの宣言セクション
Option Explicit
Private Const CONST_ARRAY As Variant = Array("アホ", "バカ", "カス")

見てのとおり、Variant型の変数CONST_ARRAYに、Array関数を用いて配列を作成し、ぶち込むようにしてみた。

使ってみる

さっそく、次のコードで使用実験。

スト2 標準モジュール
Public Sub testConstantArray()
  Dim i As Long
  For i = LBound(CONST_ARRAY) To UBound(CONST_ARRAY)
    Debug.Print CONST_ARRAY(i)
  Next
End Sub

何のひねりもないコード。

定数CONST_ARRAYに配列がぶち込まれていたら、イミディエイトにその要素が順に表示されるはず。

実行

f:id:akashi_keirin:20180822221851j:plain

あえなくエラーwww

おわりに

配列を定数にするのは無理っぽい。

次回は、Propertyと列挙体を併用して、配列定数っぽいことを実現してみる。

コチラもどうぞ

akashi-keirin.hatenablog.com