アプリ版:「スタンプのみでお礼する」機能のリリースについて

添付した画像のような9列、285行で一組(ピンクから黄色まで)の横に並んでいるデータを右のように表頭ごと縦につないでいきたいです。
データは、AからCTH列まで284組、285行まであるものが10シートあります。
本日中にやってほしいと依頼され、手作業でできる自信がありません。
どなたかお知恵をかしていただけないでしょうか。
どうぞよろしくお願いいたします。

「VBA横に並んでいるデータを縦に並ぶデー」の質問画像

A 回答 (4件)

同一シート上で並び替えると、やり直しがきかないので、


別のシートに出力するようにしました。

元のデータのシートのシート名:Sheet1
並び替えたデータのシートのシート名:Sheet2
とします。
以下のマクロを標準モジュールに登録してください。
実行するとSheet2に並び替えた結果が出力されます。

Option Explicit

Sub 転記()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim bno As Long
Dim scol1 As Long
Dim srow2 As Long
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
ws2.Cells.ClearContents
For bno = 1 To 284
scol1 = (bno - 1) * 9 + 1
srow2 = (bno - 1) * 285 + 1
ws2.Cells(srow2, 1).Resize(285, 9).Value = ws1.Cells(1, scol1).Resize(285, 9).Value
Next
End Sub

10シートを処理する場合は
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
の箇所のSheet1,Sheet2を適切なシート名に変えて、10回マクロを実行してください。
    • good
    • 0

VBA自体の知識をお持ちならVBAでの回答も可能でしょう。


でもそれがないのに【VBAわかるんだ!凄いじゃん!】となると、更に余計な事まで押し付けられるかもですよ。
まぁそれを全て質問されても問題にはならないかもですが。
ただ【わかるんならみんな(1人?)に教えてやってくれないか?】ってなるのもね。

なので今回限りなら手作業が宜しいのでは?
別に時間制限つけられた訳じゃないのでしょ?
個人で勉強の為とは違い、即業務に持ち出すと意外と面倒毎になった経験あります。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2023/08/09 10:27

No.1です。

勘違いしていました。単にコピーするだけなら、もっと簡単です。
まず、コピー元の範囲を選択します。
この時に、カーソルをA1にしてShift+Ctrl+→を押すとデータのある領域が端まで選択されます。
それから、Shift+Ctrl+↓でA1から右下隅までの領域が選択されます。
次に、Ctrl+Cで領域をコピーしたら、Ctrl+←でA列に戻し↓で一つ下にカーソルを移動してCtrl+Vで貼り付けて出来上がりです。
この一式の動作は、慣れたら数秒で出来ますので、繰り返しても1シート数分で終わるはずです。
    • good
    • 4

10シートくらいなら、VBAでプログラムするよりも手作業の方が速いです。


まず、コピー元の範囲を選択します。この時に、Shift+Ctrl+矢印を押すとデータのある領域が端まで選択されます。
次に、Ctrl+Xで切り取ります。
貼り付ける時に、右クリックから「形式を選択して貼り付け」を選び、オプションの「行と列の入れ替え」にチェックを入れて、OKを押せば1シート出来上がりです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています