VBA初心者です。お教え下さい。
下記の元データを
【元データ】
NO A-NO S1 S2 S3 S4 S5
AAA1 A1 1 2 3 4 5
AAA1 A2 11 12 13 14 15
BBB2 A3 21 22 23 24 25
BBB2 A4 31 32 33 34 35
それを、下記のようにしたいんです。
NO A-NO
AAA1 A1 S1 1
AAA1 A1 S2 2
AAA1 A1 S3 3
AAA1 A1 S4 4
AAA1 A1 S5 5
AAA1 A2 S1 11
AAA1 A2 S2 12
AAA1 A2 S3 13
AAA1 A2 S4 14
AAA1 A2 S5 15
BBB2 A3 S1 21
BBB2 A3 S2 22
BBB2 A3 S3 23
BBB2 A3 S4 24
BBB2 A3 S5 25
BBB2 A4 S1 31
BBB2 A4 S2 32
BBB2 A4 S3 33
BBB2 A4 S4 34
BBB2 A4 S5 35
検索などして、行列の入れ替えを試していたのですが、うまくいきません。
お知恵を拝借させて下さい。
Sub macro()
Dim LastRow, Trow, i As Long
LastRow = Range("A65536").End(xlUp).Row + 4
For i = 1 To Int(LastRow / 5
Trow = i * 5 - 4
Cells(Trow, 12) = Cells(Trow, 1)
Cells(Trow + 1, 12) = Cells(Trow, 2)
Cells(Trow + 2, 12) = Cells(Trow, 3)
Cells(Trow + 3, 12) = Cells(Trow, 4)
Cells(Trow + 4, 12) = Cells(Trow, 5)
Next
Range(Cells(1, 1), Cells(LastRow, 5)).Clear
End Sub
No.1ベストアンサー
- 回答日時:
行列の入れ替えは「形式を指定して貼り付け」の「行列を入れ替える」を使うと短くて楽かも。
色々やり方はあるだろうけど、Sheet1からSheet2に作る場合。
Sub sample()
Dim srcSheet As Worksheet
Dim dstSheet As Worksheet
Dim srcRow As Long
Dim dstRow As Long
Set srcSheet = Sheets("Sheet1")
Set dstSheet = Sheets("Sheet2")
'クリア
dstSheet.Cells.Clear
'見出しコピー
srcSheet.Range("A1:B1").Copy Destination:=dstSheet.Range("A1:B1")
dstRow = 2
For srcRow = 2 To srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row
'NOとA-NOを行方向5行にコピー
srcSheet.Cells(srcRow, "A").Resize(1, 2).Copy Destination:=dstSheet.Cells(dstRow, "A").Resize(5, 2)
'[S1 S2 S3 S4 S5]見出しコピー
srcSheet.Range("C1:G1").Copy
'行列を入れ替えて貼り付け
dstSheet.Cells(dstRow, "C").PasteSpecial Transpose:=True
'[S1 S2 S3 S4 S5]データコピー
srcSheet.Cells(srcRow, "C").Resize(1, 5).Copy
'行列を入れ替えて貼り付け
dstSheet.Cells(dstRow, "D").PasteSpecial Transpose:=True
'コピー先+5
dstRow = dstRow + 5
Next
Application.CutCopyMode = False
End Sub
No.2
- 回答日時:
【元データ】
NO A-NO S1 S2 S3 S4 S5
AAA1 A1 1 2 3 4 5
AAA1 A2 11 12 13 14 15
BBB2 A3 21 22 23 24 25
BBB2 A4 31 32 33 34 35
は S1~S5まで固定ですか
別シート
A列に =INDEX(元データ!A:A,INT(ROW(A5)/5)+1) B列にコピイ 下までコピイ
C列に =INDEX(元データ!C:G,INT(ROW(C5)/5)+1,MOD(ROW(C5),5)+1)
下までコピイでは ダメでしょうか。
早速の回答ありがとうございます!
S1~S5は固定なんです。
そして、回答頂いた内容で、思い通りの結果が得られました!
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- 飲み物・水・お茶 え!これ100%、ならば買おうかな。…しかし実際は… 10 2022/09/06 20:37
- 政治 福島の処理水について中国や韓国がいちゃもんをつけてくる問題って…… 9 2023/07/11 17:18
- 俳優・女優 真木よう子「日本人という事実が恥ずかしい」…… これから日本での露出や仕事は減るかな? 4 2022/11/18 19:35
- 電気・ガス・水道 ソーラーパネル初心者です 1 2023/01/01 13:46
- 政治 立憲・泉代表、内閣不信任案提出を明言 「政府は生活実感に乏しい」 7 2022/06/08 12:07
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- 食べ物・食材 キノコ好きの皆様。キノコさんたちが仲間同士で会話をしているそうです。マジです 2 2022/05/18 17:52
- 俳優・女優 市川海老蔵 5 2022/03/29 19:21
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
写真をコピーすると画質が悪くなる
-
Wordの[ディクテーション] ボタ...
-
現在、ローカルストレージにア...
-
音声ファイルの編集
-
音声マークを一括非表示にしたい。
-
パソコンのネット上でアクセス...
-
wavファイルの正確な再生時間が...
-
AAC(ipodの曲)をCD-Rに焼いて、...
-
mp4をmp3に変換するソフト(オ...
-
mp3の192kbpsと320kbps 聞き分...
-
MP4とMP4v2の違い
-
おはようございます。いつもお...
-
Audacityのスペクトログラムの見方
-
DVDが同じシーンで固まる
-
周辺音を削除して、声のみ抽出...
-
音楽の曲の時間は78分なのにCDR...
-
AviUtl編集中に音がでなくなった
-
テクノロジー犯罪についてです...
-
DTS方式のDVDを再生するには?
-
アフターエフェクトで動画ファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コピー機でコピーしたデータは...
-
データが入っているCD(購入した...
-
コピー&切り取りの違い
-
1行目のデータ(A1:G1)をコピ...
-
DVD-RのデータをPCに取...
-
CDなどのディスク系は傷むのか?
-
コピー機にデータが残る?
-
SDカードのコピーに関する質問...
-
焼いた音楽CDを焼きなおした...
-
DVDの動画データをMacBookにコ...
-
写真をコピーすると画質が悪くなる
-
Wordの[ディクテーション] ボタ...
-
現在、ローカルストレージにア...
-
音声マークを一括非表示にしたい。
-
DVDが同じシーンで固まる
-
周辺音を削除して、声のみ抽出...
-
Audacityのスペクトログラムの見方
-
AAC(ipodの曲)をCD-Rに焼いて、...
-
mp3の192kbpsと320kbps 聞き分...
-
光出力を2分配したら二台のオ...
おすすめ情報