|
つい数日前からマクロに挑戦している初心者ですが、是非皆様のご協力をいただきたく投稿いたします。
以下のようにマクロを書いて、エクセルのデータベースの情報を配列に格納していきたかったのですが、二点質問させてください。
[QUESTION1]どうやら、どの配列にも何も入っていないようなのです。何故でしょう?
[QUESTION2]配列に次々と格納していくときに、for next構文で上限を変数におき、配列もlist(4,cnt)のように変数をおきたかったのですが、エラーが出てしまいました。何故でしょう?
質問をするにあたって、あますことなく情報を書いてあるかどうかもわからないくらい、初心者ですが、どうかご容赦のほどお願いするとともに、是非アドバイスをください。よろしくお願いします。
Sub kensaku()
'[STEP1:データを配列化する]
Dim ws As Worksheet
Set ws = Worksheets("MDT")
Dim cnt As Long
cnt = ws.Range("A65536").End(xlUp).Row - 7
Dim List(4, 303) As Variant '[QUESTION2]何故303のところにcntが入らないのか?
Dim m As Long
For m = 0 To cnt
List(0, cnt) = ws.Range("R7").Offset(cnt).Value '摘要
List(1, cnt) = ws.Range("A7").Offset(cnt).Value '勘定年月
List(2, cnt) = ws.Range("C7").Offset(cnt).Value '工事番号
List(3, cnt) = ws.Range("H7").Offset(cnt).Value '伝票番号
List(4, cnt) = ws.Range("N7").Offset(cnt).Value '仕訳金額
Next
Debug.Print List(0, 1) '[QUESTION1] ここで試しにPRINTしてみてもすべて空の模様
Debug.Print List(1, 1)
Debug.Print List(2, 1)
Debug.Print List(3, 1)
Debug.Print List(4, 1)
'[STEP2:キーワードとチェックをする]
' Dim n As Long
' Dim Target As String
' Target = Worksheets("抽出MASTER").Range("B2").Value
' For n = LBound(List, 2) To UBound(List, 2)
' If InStr(List(0, n), Target) > 0 Then
' Debug.Print "勘定年月:" & List(1, n)
' Debug.Print "工事番号:" & List(2, n)
' Debug.Print "伝票番号:" & List(3, n)
' Debug.Print "仕訳金額:" & List(4, n)
' Debug.Print "摘要:" & List(0, n)
' End If
' Next
End Sub
|
|