

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も見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
エクセルVBA 1行飛ばしで転記するループ処理
Excel(エクセル)
-
一行おきにコピーするマクロが知りたい
Excel(エクセル)
-
-
4
【Excel マクロ】別シートの表に1行おきにデータを貼り付けしたい
Excel(エクセル)
-
5
エクセル VBA 指定の範囲内をコピー 複数行あけて貼り付けを指定範囲内で
Excel(エクセル)
-
6
一行おきに貼り付ける 可能でしょうか
Visual Basic(VBA)
-
7
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
8
マクロの「1列おきに貼り付け処理を行う方法」を知りたいです。
Excel(エクセル)
-
9
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
10
VBAの構文 3列置きにコピーして別シートに貼付
Visual Basic(VBA)
-
11
エクセルVBA Unionはなぜ遅い?
Visual Basic(VBA)
-
12
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
13
エクセル VBA・マクロ コピー 貼り付け 飛び飛び
Excel(エクセル)
-
14
範囲指定したセルを1つずつ飛ばす方法
Visual Basic(VBA)
-
15
【excelVBA】Findメソッドで検索対象を複数列
Excel(エクセル)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
20
Excelのマクロ名の並び順の法則は?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
【Excel VBA】指定した行の最大...
-
エクセルで行の高さ及び列幅の...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
オートフィルタ後のデータから...
-
エクセルの時刻のカウントが出...
-
文字列を比較し、相違するフォ...
-
急ぎ!色のついたセルを非表示...
-
Excelで並び替え後にア行...
-
プルダウンに【なし、平均、デ...
-
Excelで任意の文字列を半角スペ...
-
エクセル関数について
-
エクセル 複数行ある同一商品...
-
Excelの数式について
-
エクセルで2つの郵便番号を比較...
-
excel / ピポッド 日数を出したい
-
Excel VBAでセルのクリアが出来...
-
エクセルで文字を含む式に、カ...
-
エクセルで円グラフに引き出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
Excelで並び替え後にア行...
-
【Excel VBA】指定した行の最大...
-
急ぎ!色のついたセルを非表示...
-
文字列を比較し、相違するフォ...
-
基準日以前のデータを範囲を指...
-
オートフィルタ後のデータから...
-
エクセルの時刻のカウントが出...
-
マクロで行の高さを設定したい
-
EXCELで日付を比べ3か月以内の...
-
VBA 複数行の検索及び抽出
-
エクセル関数について
-
EXCEL 最終行のデータを他のセ...
-
excel / ピポッド 日数を出したい
-
エクセル 複数行ある同一商品...
-
プルダウンに【なし、平均、デ...
-
エクセル VBA 行間隔を飛ばした...
-
Excel 最小二乗法 二次関数
-
検索条件に合うセルの個数を数...
おすすめ情報
解りづらくてすみません。元データは他の機器から抽出したデータになります。
A列には抽出の際に採番されたデータ番号が入力されています。
B列には上から順に店舗、分類、商品名、日付、金額となっております。
縦長のデータ見辛いため、VBAを用いて横並びにしたいと思っております。
採番されたデータ番号は不要です。
A列 B列 C列 D列 E列
①店舗①分類①商品名①日付①金額
②店舗②分類②商品名②日付②金額
お助け頂いておりますが、文章では伝わり辛く申し訳ございません。
画像にてどのようにしたいのか表記させて頂きました。
黄色のセルが元データです。
水色のセルのように横並びにしたいと思っております。