一次元配列を要素番号を1に変換する(Excel VBA)
- yuji fukami
- 1月24日
- 読了時間: 2分
<概要>
今回は一次元配列を要素番号を1に変換する汎用プロシージャの紹介です。
Excel VBA標準機能のArray関数やSplit関数を利用して生成された一次元配列は開始要素番号が0となるので、非常に扱いづらい配列となります。この背景で、0開始の一次元配列を1開始に変換する処理が必要になったりします。
関連記事
「VBAで扱う配列の開始要素番号は1にすべきという話」
この変換処理にはこれまたExcel VBAの標準機能のWorksheetFunction.Transpose関数を2回実行することで可能ですが、WorksheetFunction.Transpose関数は
・要素の型を勝手に変換
・処理可能な要素数に上限ある
・要素にオブジェクトが含まれるとエラーとなる
などの欠陥があるので基本的に使用を避ける必要があります。
関連記事
「Transpose関数の欠点(Excel VBA)」
上記のような背景で準備している汎用プロシージャが「ConvArray1D_Start1」です。
ちなみに、名前にある「Conv」は「Convert」の略で「変換する」を意味しています。
<実行例>
今回は簡単な処理ですので、実行例は割愛いたします。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray1D → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。
תגובות