TransposeArray1Dto1N|一次元配列を横方向の二次元配列へ変換(転置) | Excel VBA
- yuji fukami
- 6 時間前
- 読了時間: 2分

<概要 (転置)>
TransposeArray1Dto1N は、一次元配列を「1行×N列(1×N)」の横方向に並んだ二次元配列へ変換(転置)するための汎用プロシージャです。
Excel VBA には WorksheetFunction.Transpose という標準関数がありますが、
この関数は「縦横を入れ替える」ためのものであり、通常の一次元配列(要素数 N)を変換した場合、
・結果は N×1(縦方向)の二次元配列
となります。
つまり、一次元配列を
・1×N(横方向)(1行に並んだ形)
の配列へ直接変換することは、標準関数ではできません。
もし一次元配列を横方向の 1×N 配列として扱いたい場合は、独自に変換処理を用意する必要があります。
TransposeArray1Dto1N は、その用途に特化して設計された汎用プロシージャで、開始要素番号が 1 の一次元配列を、安全に 1×N の二次元配列へ変換します。
配列の向きを明示的に制御できるため、他の配列処理系の汎用プロシージャと組み合わせた設計においても配列構造を安定して統一できるのが特徴です。
<実行例>
実行例のサンプルコードは次の通りです
実行結果のイミディエイトウィンドウは次のようになります。

このサンプルでは、DateSerial を用いて2025年1月1日~1月5日の日付を格納した一次元配列(1 To 5)を作成しています。
TransposeArray1Dto1N を実行すると、一次元配列の各要素が左から右へ並び、「1行×5列(1×N)」の二次元配列に変換されます。
即時ウィンドウには、
・行数:1
・列数:5
が表示され、横方向に展開された配列であることが確認できます。
また、各要素は Date 型のまま保持されており、
値の型変換などが発生していない点も確認できます。
このように、TransposeArray1Dto1N を使用することで、一次元配列を「横長の配列構造」として明示的に扱えるようになり、配列の向きに依存する処理を安定して実装できます。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray1D → https://www.softex-celware.com/post/isarray1d
・IsArray1DStart1 → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



コメント