教えて!ExcelVBA!

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

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

f:id:m_kbou:20201007072611p:plain

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

 

 

例題

例題は、範囲に任意の都県を選択した後に<実行>ボタンをクリックすると、結果内の選択範囲が反転され、単一セルが選択された場合には「選択した範囲は配列ではありません。」を、複数セルが選択された場合には「選択した範囲は配列です。」の結果を返すプログラミング方法です。

[実行前]:

f:id:m_kbou:20201007073327p:plain

[実行後]:

f:id:m_kbou:20201007073341p:plain

f:id:m_kbou:20201007073351p:plain

 

プログラミング

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

[記述例]:

Sub サンプル()

  Dim 範囲 As Variant

  Select Case Range("A2")
    Case "関東"
      範囲 = Range("B2:B8")
      Range("B2:B8").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
  End Select

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

End Sub

内容を説明すると、

IsArray関数を使用して範囲(A2セル)に任意の都県を選択した後に<実行>ボタンをクリックすると、結果内(B2セル~B8セル)の選択範囲が反転され、単一セルが選択された場合には「選択した範囲は配列ではありません。」を、複数セルが選択された場合には「選択した範囲は配列です。」をMsgboxで表示して下さい。

との意味になります。

f:id:m_kbou:20210214090732p:plain

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

 

ダウンロード

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

drive.google.com