!!!技術的雑談-動的配列が未初期化である事を確認する !!環境 *Excel 2007 !!目的 *動的配列が未初期化(ReDim前)であることを確認したい *未初期化の動的配列にUBound()すると「インデックスが範囲外です」エラーになる !!原因 未初期化動的配列は名前だけ宣言されているので、UBound()が-1になっても良さそうですが、実際は実行時エラーになります。 使いづらい…。 !!対処 動的配列の型が文字列(String)である場合に限り、以下の方法が使えます。 ReDim array() as String ' 未初期化の動的文字列配列 If (Len(Join(array)) = 0) Then ' 未初期化だった時の処理 End If 全部つなげて文字列にして、その文字列長が0だったら「未初期化」と扱うわけですね。 !!履歴 2010/02/03 -- 初版 [[技術的雑談]]へ戻る !!突っ込み {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る