質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

受付中

Excelマクロで条件に沿って2次元配列を作成し、結果を別シートで統合したい

shallow104
shallow104

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

3回答

0評価

0クリップ

230閲覧

投稿2022/06/06 11:38

編集2022/06/07 11:25

マクロ初心者です。研究で画像処理をしています。

■やりたいこと
以下の構成のエクセルでMainシートから結果シートの結果を条件式で判定し、
該当する結果を下記「理想の出力」のようにまとめたい。

■エクセルの構成
・Main(結果を統合するシート)
・Result1.csv(結果1)
・Result2.csv(結果2)
(結果のシートは多数あり)

※ResultX.csvは下記のような構成

フレーム番号フラグ(0or1)
00
10
20
31
41
50
61
70
......
(フレーム数は10000前後)

■条件式
フラグが0→1に変わったフレームの番号を取得する

■理想の出力
Mainシートに以下のようにまとめたい

シート名フレーム番号
Result1.csv3
Result1.csv6
Result1.csv20
Result2.csv2
......

■現状
条件式の判定はできるようになりましたが、判定結果をMainシートに反映する方法がわからない

■現状のコード
条件に該当するフレームがいくつあるのかわからないため、可変長の配列にすべきと思うのですが、複数のFor分の設定、配列の作成がわからず、手が止まってしまいました。。

VBA

Sub sample1() Dim i,j As Long '条件式による判定用 Dim RowNum As Integer '結果のフレーム数 Dim FlagFrame As() Long ReDim Preserve FlagFrame(1) Worksheets("Result1.csv").Activate RowNum = Cells(Rows.count,1).End(xlUp).Row For i = 1 To RowNum j = Cells(i,"B") k = Cells(i+1,"B") If j = 0 And k = 1 Then '条件式 FlagFrame(l)= i Debug.Print i-1 & "フレームでフラグ切替検知" End If Next End Sub

不明点や不足している情報などありましたらご指摘お願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

tatsu99

2022/06/06 12:40

Excelのシート構成は、Main以外は全てResultX.csvと理解して良いですか。 フレーム番号=0のフラグが1の場合は、Mainシートに登録対象になりますか。それともなりませんか?
shallow104

2022/06/06 12:44

①Excelのシート構成は、Main以外は全てResultX.csvと理解して良いですか。 →はい、認識の通りです。 ②フレーム番号=0のフラグが1の場合は、Mainシートに登録対象になりますか。それともなりませんか? →フレーム番号=0のフラグが1になることはないものと思って頂いて大丈夫です。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。