教えて!ExcelVBA!

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

【ExcelVBA プログラミング】(関数25)IsArray関数のプログラミング例を教えて!

f:id:m_kbou:20201007072611p:plain

IsArray関数を使用したプログラミング例を紹介します。

 

 

例題

範囲欄(A2セル)はプルダウンにて都道府県の各データが選択ができる様に設定されています。この範囲欄から任意の都道府県を選択し、<実行>ボタンをクリックします。選択した範囲が都・道・府・県いずれかの場合には、結果欄(B列)から選択した対象の都・道・府・県セルを選択し、「選択した範囲は配列ではありません。」を表示します。また、選択した範囲が”関東”の場合には、結果欄(B列)から関東(東京都~茨城県)のセル範囲選択し、「選択した範囲は配列です。」を表示します。

[実行前]:

範囲欄(A2セル)はプルダウンにて都道府県名が選択できます。任意の都道府県名を選択して<実行>ボタンをクリックします。

f:id:m_kbou:20220128091546p:plain

[実行後]:

①「茨城県」を選択した場合、結果列(B列)より茨城県が選択され、「選択した範囲は配列ではありません。」が表示されます。

f:id:m_kbou:20220128091600p:plain

②「関東」を選択した場合、結果列(B列)より東京都~茨城県の範囲が選択され、「選択した範囲は配列です。」が表示されます。

f:id:m_kbou:20220128091616p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  '↓処理①
  Dim 範囲 As Variant

  '↓処理②
  Select Case Range("A2")
    Case "関東"
      範囲 = Range("B3:B9")
      Range("B3:B9").Select
    Case "北海道"
      範囲 = Range("B2")
      Range("B2").Select
    Case "東京都"
      範囲 = Range("B3")
      Range("B3").Select
    Case "神奈川県"
      範囲 = Range("B4")
      Range("B4").Select
    Case "埼玉県"
      範囲 = Range("B5")
      Range("B5").Select
    Case "千葉県"
      範囲 = Range("B6")
      Range("B6").Select
    Case "栃木県"
      範囲 = Range("B7")
      Range("B7").Select
    Case "群馬県"
      範囲 = Range("B8")
      Range("B8").Select
    Case "茨城県"
      範囲 = Range("B9")
      Range("B9").Select
    Case "大阪府"
      範囲 = Range("B10")
      Range("B10").Select
  End Select

  '↓処理③
  If (IsArray(範囲) = True) Then
    MsgBox "選択した範囲は配列です。"
  Else
    MsgBox "選択した範囲は配列ではありません。"
  End If

End Sub

処理①:変数定義
変数を定義します。

処理②:選択した範囲の判定
範囲欄(A2セル)で選択した都道府県名を元に、Select文を使用して結果欄(B列)から同じ都道府県名のセル範囲を選択します。また、選択したセル範囲は、処理①で定義した変数:範囲にセットします。

処理③:選択したセル範囲の配列判定
IsArray関数を使用して処理②でセットした変数:範囲が「配列か?」又は「配列以外か?」を判定します。配列の場合は「選択した範囲は配列です。」を、配列以外の場合は「選択した範囲は配列ではありません。」を表示して下さい。

との内容になります。

f:id:m_kbou:20220128092001p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。

 

ダウンロード

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

drive.google.com