Transpose1NtoArray1D|1×N配列を安全に一次元配列へ変換(転移) | Excel VBA
- yuji fukami
- 5 時間前
- 読了時間: 2分

<概要 (転移)>
Transpose1NtoArray1Dは、1×N(横一行)の二次元配列を一次元配列へ安全に変換(転移)するためのExcel VBA用汎用プロシージャです。
WorksheetFunction.Transposeでは日付型が文字列に変換されてしまう問題がありますが、本プロシージャではVariant配列を直接処理するため、日付型・数値型・文字列型・オブジェクト型をそのまま保持した状態で一次元配列に変換できます。
Excel VBA 配列操作において、Range.Value から取得した1×N配列を後続処理で扱いやすい形に整形したい場面で特に有効です。
<実行例>
実行例のサンプルコードは次の通りです
実行結果のイミディエイトウィンドウは次のようになります。

1×5の二次元配列として用意した日付データが、一次元配列(1〜5)として順番を保ったまま変換(転移)されていることが確認できます。
WorksheetFunction.Transposeを使用した場合に発生しがちな日付型→文字列型への変換は行われず、Date型のまま保持されている点が本プロシージャの特徴です。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray2D → https://www.softex-celware.com/post/isarray1d
・IsArray2DStart1 → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



コメント