ConvFormatArray1D|一次元配列を全要素の表示形式を一括変換 | Excel VBA
更新日:1月4日

<概要 (VBA 配列 表示形式 変換)>
ConvFormatArray1D は、一次元配列(開始インデックス=1)の各要素に対して Format 関数を適用し、指定した表示形式(書式)に変換した配列を返す汎用プロシージャです(VBA 配列 表示形式 変換)。
日付を「yyyy/mm/dd」に統一したい、数値を「#,##0」に整形したい、金額を「#,##0円」のように表示したい、など “見た目の揃った配列” を作りたい場面で便利です。
引数チェックとして IsArray1D と IsArray1DStart1 を呼び出し、一次元配列でない/開始が1でない場合はメッセージを出して処理を中断します(Stop で一度止まる仕様)。
<実行例>
例えば、配列に日付が含まれる場合、手作業でそれぞれの要素に表示形式を適用するにはループを使う必要がありますが、「ConvFormatArray1D」を使用すれば簡潔に記述できます。
以下では、まず「ConvFormatArray1D」を使用しない場合のコード(ビフォー)と、使用した場合のコード(アフター)を比較します。
ビフォー: 汎用プロシージャを使用しない場合
アフター: 汎用プロシージャ「ConvFormatArray1D」を使用した場合
解説
ビフォーの場合の課題
各要素をループで処理し、フォーマットを適用した後に再格納する必要がある。
コードの行数が多く、ループ処理の手間が増える。
アフターの場合の利点
「ConvFormatArray1D」を使用することで、フォーマット適用の処理が1行で記述可能。
フォーマット処理が関数化されているため、コードの可読性が向上し、再利用も容易。
このように、「ConvFormatArray1D」を使えばコードが簡潔になり、実装時のミスを減らしつつ効率的に処理を進めることができます。この記事では、汎用プロシージャを活用する利便性を具体的に紹介しています。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray1D → https://www.softex-celware.com/post/isarray1d
・IsArray1DStart1 → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


