トップ 一覧 検索 ヘルプ RSS ログイン

技術的雑談-動的配列が未初期化である事を確認するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!技術的雑談-動的配列が未初期化である事を確認する

!!環境
*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}}

[[技術的雑談]]へ戻る