- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! VBAでの一例です。 アップされている画像で3行目以降がSheet1にあり、Sheet2に表示するようにしてみました。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面(カーソルが点滅しているところ)に ↓のコードをコピー&ペースト → Excel画面に戻り、マクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, cnt As Long, wS As Worksheet Set wS = Worksheets("Sheet2") '←Sheet2は実際のSheet名に! wS.Range("A:B").ClearContents With Worksheets("Sheet1") '←Sheet1も実際のSheet名に! For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row For j = 2 To .Cells(i, Columns.Count).End(xlToLeft).Column cnt = cnt + 1 wS.Cells(cnt, "A") = .Cells(i, "A") wS.Cells(cnt, "B") = .Cells(i, j) Next j Next i End With End Sub 'この行まで ※ 関数でないので、Sheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
その他の回答 (2)
図では、各県とも1~5町までと揃っているけど、後になって「アレは例示したまでで、実際は3町までとか6町まであったりする、つまりバラバラ」などと言い出さないでしょうね。
- minis8566
- ベストアンサー率50% (29/58)
表の縦横を入れ替えて、列を切り取って纏めればいいってことでしょうか。 こんなかんじに。 http://kokoro.kir.jp/excel/line-row-replace.html
お礼
行と列の入れ替え+それを2列にまとめなければならない作業ですが、 このやり方も参考にさせていただきました。 ありがとうございます。
お礼
非常にシンプルでわかりやすくしていただきありがとうございました。 おかげ様でうまくいきました。