5

これは個人的な好奇心の問題です。

VBA で、サイズ 2 の配列がある場合:

Dim r(1) as Variant

そして、配列内の両方の値を -1 にします。私がすることができます:

r(0)=-1
r(1)=-1

または、ループを使用して両方を反復処理し、それらを -1 に設定することもできます。

だから私の質問は、反復せずに配列内のすべての値を同じものに設定できる方法はありますか?

または、次のようなことができる方法はありますか:

r = array(-1,-1)

これは本当にばかげた質問かもしれませんが、答えが見つからないようです。

4

2 に答える 2

9

私は絵を描くのがとても苦手です。しかし、これにより、バリアント配列に関連する概念が明らかになります。

バリアントとバリアント配列

于 2012-05-22T20:21:33.020 に答える
5

はい、できます。ただし、配列を宣言する際には注意が必要です

Option Explicit

Sub Sample()
    Dim r As Variant '<~~

    r = Array(-1, -1)

    Debug.Print r(0)
    Debug.Print r(1)
End Sub

ファローアップ

VariantExcel ヘルプ ファイルを参照してください :) 配列関数は、を含む を返しますarray。配列を別の配列に直接割り当てることはできません。配列を別の配列に割り当てるには、このメソッドを使用する必要があります。

Option Explicit

Sub Sample()
    Dim r(1) As Variant 
    Dim s As Variant
    Dim i As Long

    s = Array(-1, -1)

    For i = LBound(r) To UBound(r)
       r(i) = s(i)
    Next

    Debug.Print r(0)
    Debug.Print r(1)
End Sub
于 2012-05-22T15:15:01.240 に答える