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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
【エクセル】表から条件に合ったデータを別シートに順番に抽出したい
Excel(エクセル)
-
条件にマッチする行を抽出するVBAを教えてください
経営情報システム
-
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
-
4
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
VLOOKUPの列番号の最大は?
-
エクセルで離れた列を選択して...
-
Excelの行数、列数を増やしたい...
-
VBA 指定した列にある日時デー...
-
LEFT関数とIF関数の組み合わせ...
-
エクセルマクロPrivate Subを複...
-
列方向、行方向の定義
-
エクセルで最初の行や列を開け...
-
VBAで結合セルを転記する法を教...
-
横軸を日付・時間とするグラフ化
-
エクセル マクロ 範囲指定で...
-
データシートビューのタイトル...
-
エクセル 文字列を日付に変更...
-
VBAで重複データを合算したい(...
-
ExcelVBAでセルを結合し、複数...
-
エクセルのソートで、数字より...
-
ListViewで列を指定して表示さ...
-
列を1つずつ非表示にしたい
-
VBA Splitで「引数の数が一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
列方向、行方向の定義
-
VBA 指定した列にある日時デー...
-
Excelの行数、列数を増やしたい...
-
エクセル マクロ 範囲指定で...
-
エクセルで最初の行や列を開け...
-
エクセルのソートで、数字より...
-
エクセルマクロの組み方
-
エクセルで複数列の検索をマク...
-
データシートビューのタイトル...
-
Excel文字列一括変換
-
VBAで結合セルを転記する法を教...
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
CSVファイルの「0落ち」にVBA
-
エクセル 重複 隣の列 一番...
-
横軸を日付・時間とするグラフ化
おすすめ情報