F0000012_配列の型を任意の型へ変換する

配列の型を任意の型へ変換する 関数リファレンス

この関数について

ExcelVBA(マクロ)では他の高級なプログラミング言語と違い、初期状態からブックが用意されシートやセルへの操作が可能です。このため、どうしても意識せざる得ないものがセルの書式です。先頭が0から始まる会員番号や、日付判定される「丁目」以降の番地や、ハイフンなしの電話番号など、そのままセルに貼り付けると意図した通りに反映しないデータが存在します。こんなとき最も単純な解決策は、データを「Variant」型ではなく「String」型で保持することです。「String」型の変数や配列をセルに代入(入力)すると、意図した通りにデータが反映します。ExcelVBAを学び始めた頃の私は上記のような問題にぶつかり型指定の重要性について考えた結果、様々なデータが混在する表は「String」型の配列として取り扱うことにしていました。しかし、関数リファレンスで紹介する関数群の戻り値は原則「Variant」型です。「String」型と宣言した配列に「Variant」型の配列を代入しようとすると「配列には割り当てられません。」エラーが発生します。前置きが長くなりましたが、すべてのデータを「String」型で扱いたかった私が作成したのがこのページで紹介する配列の型変換を行う関数です。

関数コピペ ~コードをクリックするだけでコピー完了!~



使い方 ①引数

■引数1:arr
 型変換したい配列

■引数2:var_type_code
 ExcelVBAで標準で使える型指定用の定数を渡します。対応しているのは、vbString、vbVariant、vbLong、vbDouble、vbDateです。指定した型へ変換します。

■引数3:based_index
 配列のbaseを指定できます。デフォルトは1になっています。

使い方 ②戻り値

指定の型へ変更された配列を返します。

サンプルコード(クリックでコピー)






【結果】配列の型変換ができました

上記のサンプルコードで「Variant」型の配列を「String」型の配列へ代入しようとしている部分をコメントアウトしています。コメントを外して実行すると「配列には割り当てられません。」というエラーが発生します。しかし型変換関数を経由すると同エラーは発生しません。サンプルコードでは単純に「Variant」型配列を格納しようとしていますが、これが関数の戻り値の場合でも同様のエラーが起きます。その時、型変換配列を経由することでエラーを回避できます。

・・・私以外の人に需要がある想像ができませんが。

関数リファレンスにはコピペで使用可能な便利関数を多数掲載!

関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。

Comment