Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » 横方向のデータを縦方向に並べるExcelマクロ

横方向のデータを縦方向に並べるExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

横方向に並んだデータを縦方向に並べる処理(行列の入れ替え)を、何回か繰り返さなければならない場面に出くわしました。

ルールが明確にあって、割ときれいなデータだったならば、バッチ処理するExcelマクロを作ったのですが、そうではなかったため、手作業でデータを選択しておいて縦方向に並べる処理を、繰り返すことにしました。

選択された横方向のデータを縦方向に並べる処理だけをマクロにしました。

[スポンサードリンク]

横方向のデータを縦方向に並べるサンプルマクロ

大量データをバッチ処理するのではなく、このようなちょっとした手作業を便利にするExcelマクロも、ヒトが手作業で作ったきれいではないシートを扱わざるを得ない実務現場では必要になります。

Sub 横方向のデータを縦に並べる()
 Dim itm As Range
 Dim n As Long

 For Each itm In Selection
  itm.Cut Destination:=ActiveCell.Offset(n, 0)
  n = n + 1
 Next itm
End Sub

横方向のデータを縦方向に並べるExcelマクロ

上図のようなデータを選択しておいてから、上記のマクロを実行すると下図のような状態になります。

横方向のデータを縦方向に並べるExcelマクロ

サンプルマクロについて

RangeオブジェクトのPasteSpecialメソッドの引数・Transposeを指定する方法も考えられますが、

横方向のデータを縦方向に並べるExcelマクロ

For Each~Nextループの中で、RangeオブジェクトのCutメソッドの引数・Destinationを指定して、

横方向のデータを縦方向に並べるExcelマクロ

データごとに切り取り&貼り付けを行うマクロにしてみました。

ショートカットキー[F8]でステップ実行すると、

横方向のデータを縦方向に並べるExcelマクロ

データの、切り取り&貼り付けが繰り返される様子を確認できます。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » 横方向のデータを縦方向に並べるExcelマクロ

「Offsetプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.