本ページには広告が含まれています。

ExcelVBA IsArray関数 配列かどうかを判定します

ExcelVBA IsArray関数 配列かどうかを判定します

Excel VBAの「IsArray 関数」について解説します。

スポンサーリンク

IsArray 関数とは

Excel VBA の IsArray 関数は、引数に指定した変数が配列かどうかを判定し結果を Boolean値で返します。

IsArray 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。

IsArray 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

IsArray(varname)

引数

引数 説明
varname【必須】配列かどうか判定したい「変数名」を指定します

戻り値

戻り値説明
ブール値
(Boolean)
varname が配列の場合は、真 (True) を返し、
それ以外の場合は、偽 (False) を返します

解説(使用例)

以下、サンプルコードで IsArray 関数の使用例を確認しましょう。

IsArray関数サンプル1(各種配列の判定)

IsArray 関数は、さまざまな種類の配列を判定することができます。

'■IsArray関数サンプル1(各種配列の判定)
Sub IsArray_Sample01()
  Dim b As Boolean  'IsArrayの結果保存用

'1. Variant変数の配列
  Dim variantArray As Variant       'バリアント変数宣言
  '宣言直後初期化前の変数
  b = IsArray(variantArray)   ' False
  Debug.Print "1-1. 初期化前のVariant変数 = " & b
  variantArray = Array(1, 2, 3)     'Array関数で配列代入
  b = IsArray(variantArray)   ' True
  Debug.Print "1-2. 配列を代入したVariant = " & b
  
'2. 静的(固定)配列
  Dim staticArray(7) As Integer     '静的配列の変数宣言
  b = IsArray(staticArray)    ' True
  Debug.Print "2. Integer型の静的配列 = " & b

'3. 動的(変動)配列
  Dim dynamicArray() As Variant   '動的配列の変数宣言
  b = IsArray(dynamicArray)   ' True
  Debug.Print "3-1. 領域割当なしの動的配列 = " & b
  ReDim dynamicArray(15)
  b = IsArray(dynamicArray)   ' True
  Debug.Print "3-2. 領域割当後の動的配列 = " & b

'4. 多次元配列
  Dim multiArray(3, 5) As Integer   '2次元配列の変数宣言
  b = IsArray(multiArray)   ' True
  Debug.Print "4. 多次元(2次元)配列 = " & b

End Sub

コードを実行した際のイミディエイトがこちらです。

IsArray_Sample01 実行時のイミディエイト画像

最初の Dim variantArray As Variant で変数を宣言した直後の初期化されていない状況では、配列になっていませんので IsArray(variantArray)False が返ります。

以降、静的配列動的配列多次元配列ともに変数の宣言自体で配列として宣言しているので、宣言直後の IsArrayTrue が返っています。

IsArray関数サンプル2(配列判定後に要素数取得)

IsArray 関数の使いどころの基本は、変数が配列かどうか判定してから処理を行うことです。

'■IsArray関数サンプル2(配列判定後に要素数取得)
Sub IsArray_Sample02()
  Dim vArray As Variant       'バリアント変数宣言
  vArray = Array(1, 2, 3, 4, 5)
  If IsArray(vArray) Then
    MsgBox "配列の要素数は " & _
    UBound(vArray) - LBound(vArray) + 1 & " です。"
  Else
    MsgBox "vArrayは配列ではありません!"
  End If
End Sub

実行時に表示されたMsgBox画像がこちらです。

IsArray_Sample02 実行時のMsgBox画像

配列の素数をループ処理する場合は、次のような方法になります。

おわりに

Excel VBA IsArray 関数は、引数に指定した変数が配列かどうかを判定し結果を Boolean値(真の場合 True、偽の場合 False)を返します。

IsArray 関数の主な使いどころは、コードの実行中にエラーが発生するのを防ぐために、変数が配列であるかどうかを事前に確認することです。

このサイト内のサンプルなどで IsArray 関数を使っている記事を検索できますので是非ご覧ください。
サイト内検索結果
Excel VBA サイト内検索結果を表示する固定ページです。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!