一次元配列の全要素の型を変換する(Excel VBA)
- yuji fukami
- 1月26日
- 読了時間: 2分
<概要>
今回は一次元配列の全要素の型を変換する汎用プロシージャの紹介です。
このプロシージャは、一次元配列に含まれるすべての要素の型を指定された型に変換し、変換後の配列を返す機能を提供します。これにより、例えば数値データを文字列型に変換したり、文字列データを日付型に変換したりといった操作を簡潔に実行できます。
「ConvVarTypeArray1D」の特長として、第2引数に列挙型 EnumVarType を使用するため、コード入力時に選択可能な型候補が表示されます(例: vbString_, vbLong_, vbDouble_, vbDate_)。これにより、誤入力の防止やコーディング効率の向上が期待できます。

通常、Excel VBAでは個別の型変換関数(CStr, CLng, CDbl, CDateなど)を使用して1つずつ要素を処理する必要がありますが、「ConvVarTypeArray1D」を使えば1行で実行可能です。
<実行例>
以下では、「ConvVarTypeArray1D」を使用しない場合のコード(ビフォー)と、使用した場合のコード(アフター)を比較します。
ビフォー: 汎用プロシージャを使用しない場合
アフター: 汎用プロシージャ「ConvVarTypeArray1D」を使用する場合
解説
ビフォーの場合の課題
各要素をループで処理し、個別の型変換関数を呼び出す必要がある。
コードの行数が増え、冗長になりやすい。
アフターの場合の利点
「ConvVarTypeArray1D」を使用することで、型変換処理が1行で記述可能。
プロシージャを再利用することで、他のデータセットや異なる型変換にも簡単に対応可能。
コードの可読性と保守性が向上。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray1D → https://www.softex-celware.com/post/isarray1d
・IsArray1DStart1 → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



コメント