スポンサーリンク

2016年12月11日日曜日

マクロ(VBA)でプルダウンを作成する(選択セル・指定セル・範囲指定の3種類作成)

Excel2013のマクロ(VBA)でプルダウンを作成する方法です。

選択セル・指定セル・範囲指定の3種類を作成します。

リボンの[開発]~コントロールグループの[コードの表示]をクリックします。

≪選択セルにプルダウンを作成する≫

下記のコードを入力します。

Option Explicit

Sub MyMakeList()
    Selection.Cells.Validation.Add Type:=xlValidateList, _
        Formula1:="見積書, 請求書, 納品書, 領収書"
End Sub

1.リボンの[開発]~コードグループの[マクロ]をクリックします。
2.作成した「MyMakeList」を選択します。
3.実行します。

これで選択セルにプルダウンが作成できました。

しかし、このままですと問題があります。
リストを変更したい場合など、作成済みセルに再作成しようとすると、下画像のようなエラーが発生します。

このエラーが発生しないよう、初めに作成済みリストを削除してから作成するように変更します。

Sub MyMakeList()
    Selection.Cells.Validation.Delete
    Selection.Cells.Validation.Add Type:=xlValidateList, _
        Formula1:="見積書, 請求書, 納品書, 領収書, 受領書"
End Sub

これで下画像のようにエラーを発生させないで、リストを再作成できました。

≪指定セルにプルダウンを作成する≫


下コードのようにRangeでセルを指定します。

Sub MyMakeList()
    Range("B4").Validation.Delete
    Range("B4").Validation.Add Type:=xlValidateList, _
        Formula1:="見積書, 請求書, 納品書, 領収書, 受領書"
End Sub

≪範囲指定したセルにプルダウンを作成する≫


下のようにRangeで範囲指定し実行します。

Sub MyMakeList()
    Range("B4:D5").Validation.Delete
    Range("B4:D5").Validation.Add Type:=xlValidateList, _
        Formula1:="見積書, 請求書, 納品書, 領収書, 受領書"
End Sub

これで指定したセル全体にプルダウンが作成できました。

≪セルに入力したデータからリストを作成する≫


入力済みデータからプルダウンを作成するには、下記のコードになります。

Sub MyMakeList()
    Range("D2").Validation.Delete
    Range("D2").Validation.Add Type:=xlValidateList, _
        Formula1:=Range("B2") & "," & Range("B3") & "," & _
        Range("B4") & "," & Range("B5")
End Sub

関連する記事
プルダウンの作り方
プルダウンリスト連動の作成手順
ドロップダウンリストを解除する
ドロップダウンリストとSUMIF関数で条件を変え合計を求める