VBAのForを使用してデータ転記をしたいのですが、
元のシートはA、B列を使用した形式となっており、行間を飛ばして反映する方法が解りません。
<元データ>
①店舗
①分類
①商品名
①日付
①金額
②店舗
②分類
②商品名
②日付
②金額
③以降同上の繰り返し
上記を店舗、分類、商品名、日付、金額の順に横並びに変更したいのが質問の趣旨になります。
金額欄を転記をしたいとした場合、下記の数式では反映されず困惑しております。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Dim i As Integer
For i = 1 To 100 Step 1 (100個データを転記)
For j = 2 To 501 Step 5 (2行目~501行目の参照データを5行ずつ飛ばして反映したい)
Cells(i +1, 5).Value = Cells(j,2) (5列目に1行空けて参照元のB列のデータを転記したい)
Next j
Next i
End sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
どのようにすれば良いのかお助け頂ければと思い書き込みました。
ご指導いただけますと幸いです。
No.4ベストアンサー
- 回答日時:
No.2・3です!
やっと理解できました。
前回までのコードはすべて無視してください。
同一シート上での操作で良いのですね?
↓のコードをシートモジュールにしてみてください。
Sub Sample4()
Dim i As Long, cnt As Long
cnt = 1
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Step 5
cnt = cnt + 1
With Cells(cnt, "D")
.Value = Cells(i, "A")
.Offset(, 1).Resize(, 5).Value = Application.Transpose(Cells(i, "B").Resize(5).Value)
End With
Next i
End Sub
※ 「値」の代入にしていますので、日付セルの表示形式がお望みの表示にならないかもしれません。
その場合は最後にセルの表示形式で調整してください。m(_ _)m
No.3
- 回答日時:
No.2です。
補足を拝見しました。
①・②・・・はA列のデータで
店舗・分類・・・等々はB列のデータだというコトなのですね。
そして横並びに表示する場合、A列・B列データを1セル内の表示しなければならない!
という解釈です。
元データはSheet1の2行目以降にあり、Sheet2の1行目から横並びに表示するとします。
標準モジュールにしてください。
Sub Sample2()
Dim i As Long, k As Long
Dim cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Step 5
cnt = cnt + 1
For k = 1 To 5
wS.Cells(cnt, k) = .Cells(i + k - 1, "A") & " " & .Cells(i + k - 1, "B")
Next k
Next i
End With
End Sub
※ Sheet1のA列が数値データの場合、A・B列を連結してしまうと、日付とか金額がおかしな結果になるので
半角スペースをかましています。
(すなわち文字列になりますので、金額などは計算には使えません。)
単純にB列だけを5列に横並びにしたい場合は、もっと簡単に・・・
Sub Sample3()
Dim i As Long, cnt As Long
Dim wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Step 5
cnt = cnt + 1
wS.Cells(cnt, "A").Resize(, 5).Value = Application.Transpose(.Cells(i, "B").Resize(5).Value)
Next i
End With
End Sub
くらいで大丈夫だと思います。m(_ _)m
No.2
- 回答日時:
こんばんは!
No.1さんがおっしゃっているように、何をどうしたいのか?
が全く分かりません。
もしかして、B列データをC2セル以降(5行)に並び替えたい!という質問でしょうか?
そうであれば、一例です。
Sub Sample1()
Dim i As Long, cnt As Long
For i = 7 To Cells(Rows.Count, "A").End(xlUp).Row Step 5
cnt = cnt + 1
Cells(2, cnt + 2).Resize(5).Value = Cells(i, "B").Resize(5).Value
Next i
End Sub
※ コードを拝見しても何をやりたいのかが見えてこないので
勝手に判断しました。
この手の質問は文章で説明するより、Before & After の形を示した方が
回答が付きやすいと思います。m(_ _)m
本当に解りづらくて申し訳ありません。
画像にてどのような状態のデータをどのようにしたいのかを貼り付けました。
ご教示いただけますと幸いです。
No.1
- 回答日時:
仕様が不明瞭なので確認しますが
あるワークシートの A 列に記載されている元データがありますが、これを B 列以降に複製したいのですか?
移動 cut & paste ではなくて複製 copy & paste?
『5列目に1行空けて参照元のB列のデータを転記したい』という質問文が無茶苦茶で、列と行を混同しているものだから、何が言いたいのか分からない。
ざっくり、こんな感じにしたいと思うんだけど。
A列 B列 C列
①店舗 ②店舗 ③店舗
①分類 ②分類 ③分類
①商品名 ②商品名 ③商品名
①日付 ②日付 ③日付
①金額 ②金額 ③金額
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
【お題】ヒーローの謝罪会見
【大喜利】 怪人の侵略に気づくのが遅れ、それを防げなかった戦隊ヒーローの謝罪会見で出た発言
-
ちょっと先の未来クイズ第5問
日本漢字能力検定協会が主催し、12月12日に発表される、2024年の「今年の漢字」に選ばれる漢字一文字は何でしょう?
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
エクセルVBA 1行飛ばしで転記するループ処理
Excel(エクセル)
-
一行おきにコピーするマクロが知りたい
Excel(エクセル)
-
-
4
【Excel マクロ】別シートの表に1行おきにデータを貼り付けしたい
Excel(エクセル)
-
5
エクセル VBA 指定の範囲内をコピー 複数行あけて貼り付けを指定範囲内で
Excel(エクセル)
-
6
一行おきに貼り付ける 可能でしょうか
Visual Basic(VBA)
-
7
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
8
Excel VBAでn行毎に行の選択
Excel(エクセル)
-
9
マクロの「1列おきに貼り付け処理を行う方法」を知りたいです。
Excel(エクセル)
-
10
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
11
VBAの構文 3列置きにコピーして別シートに貼付
Visual Basic(VBA)
-
12
エクセル VBA・マクロ コピー 貼り付け 飛び飛び
Excel(エクセル)
-
13
範囲指定したセルを1つずつ飛ばす方法
Visual Basic(VBA)
-
14
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
15
【Excel :VBA】 最終行から一行空けて貼り付けたい
Excel(エクセル)
-
16
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
17
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
18
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
19
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
20
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
Excelで並び替え後にア行...
-
【Excel VBA】指定した行の最大...
-
EXCEL 最終行のデータを他のセ...
-
EXCELの関数で大なり記号を複数...
-
【Excel】数式の参照範囲を可変...
-
基準日以前のデータを範囲を指...
-
Excelで任意の文字列を半角スペ...
-
プルダウンに【なし、平均、デ...
-
時間の重複チェック
-
エクセルの時刻のカウントが出...
-
マクロで行の高さを設定したい
-
VBA 配列で型がエラーになります。
-
文字列を比較し、相違するフォ...
-
Excelで複数列のデータを1列に...
-
EXCELで日付を比べ3か月以内の...
-
excel / ピポッド 日数を出したい
-
急ぎ!色のついたセルを非表示...
-
エクセルで円グラフに引き出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
オートフィルタ後のデータから...
-
エクセルで行の高さ及び列幅の...
-
急ぎ!色のついたセルを非表示...
-
基準日以前のデータを範囲を指...
-
エクセルの時刻のカウントが出...
-
EXCELで日付を比べ3か月以内の...
-
【Excel VBA】指定した行の最大...
-
エクセル関数について
-
EXCEL 最終行のデータを他のセ...
-
文字列を比較し、相違するフォ...
-
プルダウンに【なし、平均、デ...
-
エクセル VBA 行間隔を飛ばした...
-
VBA 複数行の検索及び抽出
-
マクロで行の高さを設定したい
-
特定の行を選択して別のシート...
-
エクセル 複数行ある同一商品...
-
Excel 最小二乗法 二次関数
-
複数回答のクロス集計の方法
おすすめ情報
解りづらくてすみません。元データは他の機器から抽出したデータになります。
A列には抽出の際に採番されたデータ番号が入力されています。
B列には上から順に店舗、分類、商品名、日付、金額となっております。
縦長のデータ見辛いため、VBAを用いて横並びにしたいと思っております。
採番されたデータ番号は不要です。
A列 B列 C列 D列 E列
①店舗①分類①商品名①日付①金額
②店舗②分類②商品名②日付②金額
お助け頂いておりますが、文章では伝わり辛く申し訳ございません。
画像にてどのようにしたいのか表記させて頂きました。
黄色のセルが元データです。
水色のセルのように横並びにしたいと思っております。