■VBAマクロでワークブックAにワークブックBの集計をしたい。
ただし、ワークブックBは同じ番号で何個もあり、日付も並んでいません。
またワークブックAにあってBにない番号、また逆もあります。
それを日付が近いものから3つまで表示。
例)
ワークブックA (sheet1)
番号 メモA1 メモA2 メモB1 メモB2 メモC1 メモC3
11111 2010/7/7 ccc 2010/5/5 ddd 2010/3/3 bbb
22222 2010/10/10 fff 2010/2/2 eee
35851 2010/12/12 ggg
54321
ワークブックB (sheet1)
番号 日付 メモ
11111 2009/1/1 aaa
11111 2010/3/3 bbb
11111 2010/7/7 ccc
11111 2010/5/5 ddd
22222 2010/2/2 eee
23568 2010/4/4 hhh
22222 2010/10/10 fff
35851 2010/12/12 ggg
※ワークブックAは最初項目と番号以外メモ部分は白紙です。例)は実行後の結果です。
質問で足りない部分ありましたら補足を入れますのでよろしくお願い致しますm(__)m
No.1ベストアンサー
- 回答日時:
ワークブックAのSheet1のシートモジュールに次のコードを書いてください。
Sub 集計()
Dim i As Integer
Dim j As Integer
Dim 番号 As String
Dim 日付 As Date
Dim メモ As String
For i = 2 To Workbooks("ワークブックB").Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
番号 = Workbooks("ワークブックB").Sheets("Sheet1").Cells(i, 1).Value
日付 = Workbooks("ワークブックB").Sheets("Sheet1").Cells(i, 2).Value
メモ = Workbooks("ワークブックB").Sheets("Sheet1").Cells(i, 3).Value
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(j, 1).Value = 番号 Then
If Cells(j, 2).Value < 日付 Then
Cells(j, 6).Value = Cells(j, 4).Value
Cells(j, 7).Value = Cells(j, 5).Value
Cells(j, 4).Value = Cells(j, 2).Value
Cells(j, 5).Value = Cells(j, 3).Value
Cells(j, 2).Value = 日付
Cells(j, 3).Value = メモ
ElseIf Cells(j, 4).Value < 日付 Then
Cells(j, 6).Value = Cells(j, 4).Value
Cells(j, 7).Value = Cells(j, 5).Value
Cells(j, 4).Value = 日付
Cells(j, 5).Value = メモ
ElseIf Cells(j, 6).Value < 日付 Then
Cells(j, 6).Value = 日付
Cells(j, 7).Value = メモ
End If
Exit For
End If
Next
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ブックのCOPY 4 2023/02/25 20:17
- Visual Basic(VBA) ワークブックを追加したあとに シート名を変更することは可能でしょうか 1 2022/12/10 22:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックスに日付を表示する
-
DataGridViewの和暦表示について
-
VisualBasic6.0のFormat関数で...
-
ExcelVBAでSQLサーバの日付時刻...
-
Eclipseの対応する括弧の強調表...
-
3人のじゃんけんのプログラム
-
ユーザーフォームのラベルに日...
-
和暦表示
-
テキストボックスに今日の日付...
-
VBAで当月の1日を表示するには...
-
<Access>2つの抽出条件が合致...
-
DataGridViewでyyyy/MM/dd
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
「eclipseで作るカレンダー(ス...
-
Googleフォームで選択肢に応じ...
-
VBAで日付入力しているのですが
-
ACCESSのフォームに本日...
-
VBA:日付をシリアル値にできる...
-
今日より前の書き方 マクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAの質問になります 行の非表示
-
ユーザーフォームのラベルに日...
-
Googleフォームで選択肢に応じ...
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
システム日付とは?
-
Eclipseの対応する括弧の強調表...
-
【VBA】土日をスキップして日付...
-
DataGridViewでyyyy/MM/dd
-
【Excel VBA】条件に合った行の...
-
VBAで当月の1日を表示するには...
-
VBA 日付、未来の日付はエラー...
-
JSPからYYYYMMDDで日付入力する
-
VB6.0 のformat関数について
-
指定した日付が、その月の第何...
-
VBで時間計算
-
VBAのオーバーフローについて質...
-
今日より前の書き方 マクロ
-
テキストボックスに今日の日付...
-
3人のじゃんけんのプログラム
おすすめ情報