目次

行列を入れ替えたい

今回は、Excel VBA のマクロでセルの行列を入れ替えたい場合に便利な Transpose 関数を使用したマクロを作成してみたいと思います。

Transpose 関数は、エクセルのワークシート上で使用可能なワークシート関数の中のひとつのようですが、その関数をマクロから呼び出して使用してみます。

サンプルとして以下の画像のワークシートを準備してみました。

A2:A4 の範囲に A , B , C の文字が入力されています。

この縦並びの A , B , C の文字を B1:D1 の範囲に行列を入れ替えて横並びで出力してみたいと思います。

縦並びのデータ。
縦並びのデータ。

目次まで戻る

マクロの一例

以下の行列を入れ替えるマクロを作成してみました。

Transpose 関数を使用して行列を入れ替えた結果を、横並びで B1:D1 の範囲に出力しています。

Sub セル範囲の行列を入れ替えるマクロ()

Range("B1:D1").Value = WorksheetFunction.Transpose(Range("A2:A4"))

End Sub

上のマクロを実行すると、以下の画像の結果になりました。

横並びに入れ替わっている。
横並びに入れ替わっている。

縦並びの A , B , C の文字が B1:D1 の範囲に横並びに入力されていますね。

とりあえず成功したようです。

縦並びのリストを横並びにしたい場合に便利な方法ですね。

目次まで戻る

セルの個数を一致させる

行列の入れ替え元と行列の入れ替え先のセルの個数が一致していない場合のマクロも作成してみました。

行列の入れ替え元は A2:A4 の範囲で 3 つのセルがありますが、行列の入れ替え先は B1 のみになっていて 1 つのセルがあります。

Sub 行列の入れ替え元と行列の入れ替え先のセルの個数が一致していない場合のマクロ()

Range("B1").Value = WorksheetFunction.Transpose(Range("A2:A4"))

End Sub

上のマクロを実行すると、以下の画像の結果になりました。

A の文字のみが出力されていますね。

「A」のみ出力されている。
「A」のみ出力されている。

以上閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿