- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!技術的雑談-動的配列が未初期化である事を確認する
!!環境
*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}}
[[技術的雑談]]へ戻る