マクロ初心者です。研究で画像処理をしています。
■やりたいこと
以下の構成のエクセルでMainシートから結果シートの結果を条件式で判定し、
該当する結果を下記「理想の出力」のようにまとめたい。
■エクセルの構成
・Main(結果を統合するシート)
・Result1.csv(結果1)
・Result2.csv(結果2)
(結果のシートは多数あり)
※ResultX.csvは下記のような構成
フレーム番号 | フラグ(0or1) |
---|---|
0 | 0 |
1 | 0 |
2 | 0 |
3 | 1 |
4 | 1 |
5 | 0 |
6 | 1 |
7 | 0 |
... | ... |
(フレーム数は10000前後) |
■条件式
フラグが0→1に変わったフレームの番号を取得する
■理想の出力
Mainシートに以下のようにまとめたい
シート名 | フレーム番号 |
---|---|
Result1.csv | 3 |
Result1.csv | 6 |
Result1.csv | 20 |
Result2.csv | 2 |
... | ... |
■現状
条件式の判定はできるようになりましたが、判定結果をMainシートに反映する方法がわからない
■現状のコード
条件に該当するフレームがいくつあるのかわからないため、可変長の配列にすべきと思うのですが、複数のFor分の設定、配列の作成がわからず、手が止まってしまいました。。
VBA
1Sub sample1() 2 Dim i,j As Long '条件式による判定用 3 Dim RowNum As Integer '結果のフレーム数 4 Dim FlagFrame As() Long 5 ReDim Preserve FlagFrame(1) 6 7 Worksheets("Result1.csv").Activate 8 RowNum = Cells(Rows.count,1).End(xlUp).Row 9 10 For i = 1 To RowNum 11 j = Cells(i,"B") 12 k = Cells(i+1,"B") 13 If j = 0 And k = 1 Then '条件式 14 FlagFrame(l)= i 15 Debug.Print i-1 & "フレームでフラグ切替検知" 16 End If 17 Next 18End Sub
不明点や不足している情報などありましたらご指摘お願いします。