トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

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

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


 環境

  • Excel 2007

 目的

  • 動的配列が未初期化(ReDim前)であることを確認したい
  • 未初期化の動的配列にUBound()すると「インデックスが範囲外です」エラーになる

 原因

未初期化動的配列は名前だけ宣言されているので、UBound()が-1になっても良さそうですが、実際は実行時エラーになります。
使いづらい…。

 対処

動的配列の型が文字列(String)である場合に限り、以下の方法が使えます。

ReDim array() as String        ' 未初期化の動的文字列配列
If (Len(Join(array)) = 0) Then
    ' 未初期化だった時の処理
End If

全部つなげて文字列にして、その文字列長が0だったら「未初期化」と扱うわけですね。

 履歴

2010/02/03 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2D%C6%B0%C5%AA%C7%DB%CE%F3%A4%AC%CC%A4%BD%E9%B4%FC%B2%BD%A4%C7%A4%A2%A4%EB%BB%F6%A4%F2%B3%CE%C7%A7%A4%B9%A4%EB

技術的雑談へ戻る

最終更新日時:最終更新時間:2010年02月03日 22時43分33秒
トップページに戻る