教えて!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