教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】IsArray関数を使用した配列かどうかを調べる方法を教えて!

f:id:m_kbou:20200420124735p:plain

 

 

構文

記述方法は以下の通りとなります。

IsArray([変数])

[説明]:

指定した変数が配列か否かを判定します。配列の場合には「True」を、配列で無い場合には「False」を戻り値として返します。

[変数] 任意の変数を記述します。

[記述例]:

IsArray(範囲)

 

使い方

使い方について具体的に説明します。

指定した変数が配列の場合

指定した変数が配列の場合について説明します。

[プログラミング例①]:

Sub サンプル()

  Dim 範囲 As Variant

  範囲 = Range("A1:B1")

  MsgBox IsArray(範囲)

End Sub

「最初に変数:範囲を定義します。次に変数:範囲にA1セル~B1セルの配列:Range("A1:B1")をセットします。最後にセットした変数:範囲について配列か否かを判断し、結果(True/False)をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423124646p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423124703p:plain

②結果は以下の様に表示されます。指定した変数:範囲が配列のため、MsgBoxで「True」が表示されます。

f:id:m_kbou:20210423124715p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Sub サンプル()

  If (IsArray(Range("A1:B1")) = True) Then
    MsgBox "配列です。"
  Else
    MsgBox "配列ではありません。"
  End If

End Sub

「Range("A1:B1")が配列か否かを判断し、配列の場合には”配列です。”をMsgBoxで表示し、配列で無い場合には”配列ではありません。”を表示して下さい。」との意味になります。

f:id:m_kbou:20210423124812p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423124826p:plain

②結果は以下の様に表示されます。指定した範囲が配列のため、MsgBoxで「配列です。」が表示されます。

f:id:m_kbou:20210423124838p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した変数が配列の場合についての説明は以上です。

 

指定した変数が配列で無い場合

指定した変数が配列で無い場合について説明します。

[プログラミング例①]:

Sub サンプル()

  Dim 範囲 As Variant

  範囲 = Range("A1")

  MsgBox IsArray(範囲)

End Sub

「最初に変数:範囲を定義します。次に変数:範囲に配列で無いA1セルであるRange("A1")をセットします。最後にセットした変数:範囲について配列か否かを判断し、結果(True/False)をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423125006p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423125019p:plain

②結果は以下の様に表示されます。指定した変数:範囲が配列で無いため、MsgBoxで「False」が表示されます。

f:id:m_kbou:20210423125031p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Sub サンプル()

  If (IsArray(Range("A1")) = True) Then
    MsgBox "配列です。"
  Else
    MsgBox "配列ではありません。"
  End If

End Sub

「Range("A1")が配列か否かを判断し、配列の場合には”配列です。”をMsgBoxで表示し、配列で無い場合には”配列ではありません。”を表示して下さい。」との意味になります。

f:id:m_kbou:20210423125125p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423125138p:plain

②結果は以下の様に表示されます。指定した範囲が配列で無いため、MsgBoxで「配列ではありません。」が表示されます。

f:id:m_kbou:20210423125149p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定した変数が配列で無い場合についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はIsArray関数を使用した配列かどうかを調べる方法について説明しました。類似の内容としてIsNumeric関数を使用した数値として扱えるかどうかを調べる方法IsDate関数を使用した日付や時刻として扱えるかどうかを調べる方法があります。こちらも参考にして下さい。