
excel2000のVBAで二次元配列を検索して、
検索条件に一致する配列の番地を取得するための、
コード記述に関する質問です。
例えば、
myarray(i,j), i=1,j=1の配列があるとして、それぞれに
myarray(0,0) = 1
myarray(0,1) = 2
myarray(1,0) = 3
myarray(1,1) = 4
という値が格納されており、
配列を検索して値が4の番地(i=1,j=1)を返したい、
といった場合、どのようにすれば良いのでしょうか。
ご存知の方、是非回答お願いします。
No.1ベストアンサー
- 回答日時:
こんな感じで
Sub xxx()
Dim myarray(10, 10)
'
myarray(0, 0) = 1
myarray(0, 1) = 2
myarray(1, 0) = 3
myarray(1, 1) = 4
'
For i = 0 To 1
For j = 0 To 1
If myarray(i, j) = 4 Then MsgBox "i=" & i & vbCrLf & "j=" & j
Next j
Next i
End Sub
No.2
- 回答日時:
こんばんは。
通常、Excelでは、そのような場合は、Rangeオブジェクトにして、検索します。また、2次元はややこしくなるので、あまり作らないほうがよいですね。
Sub Test1()
Dim myArray(1, 1) As Integer
Dim i As Integer
Dim j As Integer
Const F As Integer = 4
myArray(0, 0) = 1
myArray(0, 1) = 2
myArray(1, 0) = 3
myArray(1, 1) = 4
For i = LBound(myArray(), 1) To UBound(myArray(), 1)
For j = LBound(myArray(), 2) To UBound(myArray(), 2)
If myArray(i, j) = F Then
GoTo EndLine
End If
Next j
Next i
EndLine:
MsgBox "(" & i & "," & j & ")"
End Sub
仰る通り二次元だと難しいです。
質問の例だと、二次元の意味全く無いですもんね。
LBound関数というのも初めて見ました。
これは、動的配列を使った場合に便利そうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Excel(エクセル) INDEX関数とMATCH関数を使用し値を返す数式についてです 2 2022/04/20 13:40
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
特定のセル範囲で4文字以上入力...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
配列内の内容を全て表示する方法
-
subの配列引数をoptionalで使う...
-
エクセルVBAの配列二重ループ処...
-
友愛数を探すプログラム
-
Excel VBA TREND関数について
-
[VB.net] StringからByte配列へ...
-
ビンゴ
-
VB2008: CSV を二次元配列に読...
-
ListViewで、非表示列って作れ...
-
s-functionについて質問です。...
-
配列変数の添字が範囲外ですと...
-
VBAで多次元配列のインデックス...
-
VLOOKUP関数で、一番下...
-
任意の配列を引数として動作す...
-
C言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
subの配列引数をoptionalで使う...
-
VB6 配列を初期化したい
-
配列変数の添字が範囲外ですと...
-
2次元動的配列の第一引数のみを...
-
ListViewで、非表示列って作れ...
-
Excel-VBAの配列「Public Const...
-
for each の現在の配列ポインタ...
-
AES暗号にて、AES_set_encrypt_...
-
Dim は何の略ですか?
-
VBのFunctionで、配列を引数...
-
配列を任意の数値で埋める方法
-
verilogで配列の任意の8bitを取...
-
エクセルで最小値から0を除く方法
-
《エクセル2000》A列・B列の商...
-
配列内の内容を全て表示する方法
-
配列に同じ値を入れる方法
おすすめ情報