zukucode
主にWEB関連の情報を技術メモとして発信しています。

VBA 配列が初期化されているかどうかを判定する

VBAで配列が初期化されているかどうかを判定する方法を紹介します。

Sgn関数は、初期化されていない配列の場合のみ結果が0になるため、これを利用して判定します。

以下の例では配列arrは初期化されていないため、Sgn(arr)の結果が0になります。

Dim arr() As String
If Sgn(arr) = 0 Then
    '初期化されていない
Else
    '初期化されている
End If

以下のように初期化されている場合はSgn(arr)の結果が0ではなくなります。

Dim arr() As String
ReDim Preserve arr(0)
If Sgn(arr) = 0 Then
    '初期化されていない
Else
    '初期化されている
End If

関連記事

  • VBA システム日付と時刻をフォーマットして表示する

    VBAでシステム日付と時刻をフォーマットして表示する方法を紹介します。以下の例では、例えばシステム日付が2019年01月23日4時56分01秒の場合は2019/01/23 04:56:01が設定されま...


  • VBA シート名でシートオブジェクトを取得する方法

    VBAでシート名でシートオブジェクトを取得する方法を紹介します。以下の例ではsheet1という名称のシートをwsという変数に設定しています。取得したシートをアクティブシートに設定するには、取得したシー...


  • VBA 指定した範囲のセルを結合・結合解除する方法

    VBAで指定した範囲のセルを結合または結合解除する方法を紹介します。VBA 指定した範囲に配列の値をセットする方法で紹介した方法と同じように、Range(始点のセル, 終点のセル)の形式で範囲を指定し...


  • VBA 指定した範囲に配列の値をセットする方法

    VBAで指定した範囲に配列の値をセットする方法を紹介します。Range(始点のセル, 終点のセル)の形式で範囲を指定します。範囲内のセルの数を配列の要素数と合わせています。また、配列は1次配列のため、...


  • VBA 書式のみをコピーして貼り付ける方法

    VBAで書式のみをコピーして貼り付ける方法を紹介します。まずは指定した範囲に対してCopyを実行します。コピーの手順はVBA 指定した範囲をコピーして別の場所に貼り付けるで紹介した方法と同じです。貼り...


  • VBA 複数の行を選択して操作を行う方法

    VBAで複数の行を選択して、コピーや削除などの操作を行う方法を紹介します。わかりやすくするために、まずは1行のみ選択する方法を確認します。以下の例では1行目を選択しています。複数行の場合は「範囲指定」...


  • VBA 指定した範囲をコピーして別の場所に貼り付ける方法

    VBAで指定した範囲をコピーして別の場所に貼り付ける方法を紹介します。まずは指定した範囲に対してCopyを実行します。VBA 指定した範囲のセルを結合・結合解除する方法で紹介した方法と同じように、Ra...


  • VBA セルの内容に合わせて列幅を設定する方法

    VBAでセルの内容に合わせて列幅を自動で設定する方法を紹介します。以下のように、自動調整したい列に対してAutoFitを実行します。自動で列幅を設定すれば、セルの内容が途中で折り返されたり切れたりとい...


  • VBA セルに値を設定する方法

    VBAでセルに値を設定する方法を紹介します。以下の例では、アクティブシートのセルC1(1行目のC列目(3列目))にsampleという文字列を設定しています。Cells(行番号, 列番号)の形式で指定し...


  • VBA 指定した範囲のセルを削除する方法

    VBAで指定した範囲のセルを削除する方法を紹介します。以下の例では、指定した範囲のセルを削除し、セルは左に詰めています。VBA 指定した範囲のセルを結合・結合解除する方法で紹介した方法と同じように、R...