
Excel2003を使用しています。
CSVでExcelに取り込んだデータの中から、条件を満たすものを順に抽出して一覧表を作成するマクロを作りたいのですが。。。
・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下
・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下
に順に表示させたいのですが、うまくいきません。
以前、いただいた回答で参考になりそうなものを見てみたのですが、手順というか何かヒントのようなものをいただけたら、自分でどうにかできそうなので、質問させていただきました。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
ご質問が、分かりにくいのです。
>・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下
>・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下
これが、横並びするものか、それとも、別々のものかということです。横並びするにしても、必ず、コードと合計が一対にならないこともあるとか、話が複雑なこともあります。
そういう場合、次の「コード」という文字が現れるのを、トリガーにして、前のデータの書き出しするとか、それぞれ現れたら、別々にSheet1 のC列・D列に順送りしてよいのか、そういうところが見えてきません。
また、CSVというのにも関わらず、同じデータフィールドに、数値と文字列の混在があるように思います。そういうのを単純に考えてよいのか、いろんなことを考えてしまいます。
通常は、別々に考えるなら、ローテクですが、以下のようにすれば、良いわけですが……。
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim i As Long
Dim j As Long
Set Sh1 = Worksheets("Sheet1")
Set Sh2 = Worksheets("Sheet2")
j = 2
k = 2 '初期値
With Sh2
For i = 1 To .Range("B65536").End(xlUp).Row
If .Cells(i, 2).Value Like "*コード*" Then
Sh1.Cells(j, 3).Value = .Cells(i, 3).Value
j = j + 1
End If
If .Cells(i, 3).Value Like "*合計*" Then
Sh1.Cells(k, 4).Value = .Cells(i, 4).Value
k = k + 1
End If
Next i
End With
Wendy02 さん、こんにちは。
回答ありがとうございます。
まず、説明不足で申し訳ありません。
「CSVでExcelに取り込んだデータ」というのは、会社で使用しているシステムからCSV出力 → Excelに取り込んだデータでして、抽出するデータ部分については、数値と文字列の混在はない状態です。
このデータの状態をみて、“コード”と“合計”は入力されている列は違うものの、交互に現れるので、この規則性を利用して、それぞれSheet1 のC列・D列に順送りすれば、一覧表が作成できると考えたわけです。
おかげさまで、無事データを順に表示させることができました。
ループが複数であったり、条件があったりすると、まだうまくコードを書くことができません(>_<)
参考書を読んだり、以前ここで教えていただいたコードを参考にしたり、試行錯誤していますが、まだまだです(^^ゞ
ありがとうございました!
No.1
- 回答日時:
Sheets("Sheet2").Cells(i,2)が"コード"ならSheets("Sheet1").Cells(j,3)=Sh
eets("Sheet2").Cells(i,3)回答ありがとうございます。
質問文に詳しく記載しておけばよかったのですが、条件の部分(回答をいただいた部分)は分かりますので、同様に書いています。
ループさせて、Sheet1の2行目以下に順に、該当のデータを表示させるところがうまくいっていない(?)ようでして、ループのさせ方を教えていただけないでしょうか?
再度の質問で恐れ入りますが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
【エクセル】表から条件に合ったデータを別シートに順番に抽出したい
Excel(エクセル)
-
条件にマッチする行を抽出するVBAを教えてください
経営情報システム
-
-
4
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
5
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
列方向、行方向の定義
-
土日の列幅の自動変更を教えて...
-
横軸を日付・時間とするグラフ化
-
LEFT関数とIF関数の組み合わせ...
-
エクセルマクロPrivate Subを複...
-
エクセルのソートで、数字より...
-
エクセル マクロ 範囲指定で...
-
Accessのレポートで繰り返し表...
-
ListViewで列を指定して表示さ...
-
EXCELを最大にて開いた際、特定...
-
VBAで結合セルを転記する法を教...
-
Excel文字列一括変換
-
VLOOKUPの列番号の最大は?
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで?
-
Excelの行数、列数を増やしたい...
-
csvに別のExcelの文章を差し込む
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
Excelの行数、列数を増やしたい...
-
エクセル マクロ 範囲指定で...
-
列方向、行方向の定義
-
Excel文字列一括変換
-
エクセルのソートで、数字より...
-
エクセルマクロの組み方
-
エクセルでセル12個間隔で合...
-
VBAで結合セルを転記する法を教...
-
エクセルマクロPrivate Subを複...
-
ListViewで列を指定して表示さ...
-
エクセルで最初の行や列を開け...
-
横軸を日付・時間とするグラフ化
-
CSVファイルの「0落ち」にVBA
-
VBAで別ブックの列を検索し、該...
-
エクセルの行を65536以上に増や...
おすすめ情報