Excell VBA にて配列に定数を代入する方法
Excell-VBAにおいて、大量の定数を二次元配列に代入して行く方法をご教授願います。
下記関数は、JIS並目ねじのM数(引数:B)の知りたい形状値(たとえば「ピッチ」ならば、引数C=1)を出力するものなのですが、40行もの代入文をずらっと並べて書くしか思いつかずに居ります。
昔のN88-BASICなどではREAD~DATA文を用いて、データーを羅列して書いておけば良かったのですが、Excell-VBAにおいては良い方法はありますか?
その他の希望としましては、ワークシートからデーターを読み込む方法では、ワークシートをいじられてはおかしくなってしまいますので、VBAコードだけで完結させたいです。
また、別途データファイルを作成しておいて、Open~命令で、という手法も用いないで作成したいです。
Array関数に、ずらっとデーターを並べるのも避けたいです。
(私は、Access-VBAは多少かじっておりますが、Excell-VBAにはかなりうといです。)
Function NAMIME(B, C)
Dim A(40, 5), D As Single
Dim I As Integer
' ピッチ 引っかかりの高さ 外径 有効径 谷の径
A(1, 1) = 0.25: A(1, 2) = 0.135: A(1, 3) = 1: A(1, 4) = 0.838: A(1, 5) = 0.729
A(2, 1) = 0.25: A(2, 2) = 0.135: A(2, 3) = 1.1: A(2, 4) = 0.938: A(2, 5) = 0.829
A(3, 1) = 0.25: A(3, 2) = 0.135: A(3, 3) = 1.2: A(3, 4) = 1.038: A(3, 5) = 0.929
<中略>
A(38, 1) = 5.5: A(38, 2) = 2.977: A(38, 3) = 60: A(38, 4) = 56.428: A(38, 5) = 54.046
A(39, 1) = 6: A(39, 2) = 3.248: A(39, 3) = 64: A(39, 4) = 60.103: A(39, 5) = 57.505
A(40, 1) = 6: A(40, 2) = 3.248: A(40, 3) = 68: A(40, 4) = 64.103: A(40, 5) = 61.505
D = -1
For I = 1 To 40
If A(I, 3) = B Then
NAMIME = A(I, C): D = 0
End If
Next I
If D Then NAMIME = "範囲外"
End Function
お礼
keithinさん、回答ありがとうございます。 ツールメニューのオプションのドッキングでイミディエイトのチェックを外したら、表示されました。 直感的には、チェックをつけるべきだと思ったのですが、意外に思いとは反対でした。 次の質問を投稿しますので、よろしくお願いします。