【エクセルVBA】複数セルを領域を変えながらリスト選択式にする方法!

こんにちは、ヒガシです。

 

前回の記事では、VBAを使ってひとつのセルをリストからの選択方式にする方法をご紹介しました。

 

本記事では、そのスキルを応用して、複数のセルを選択範囲の領域を変更しながら選択式にしていく方法をご紹介していきます。

 

スポンサーリンク

やりたいことのイメージ共有

あなたのやりたいことと、本記事の内容が一致していなければ意味がありませんので、まずは実施イメージを共有させていただきます。

 

例えばこんなセル状態だったとします。

複数セルをリスト選択式にするという処理のイメージ共有

この状態からA1セルをA2:A11から選択式に、B1セルをB2:B11から選択式に・・・・という形で選択領域を変えながらセルを選択方式に変更していきます。

 

スポンサーリンク

領域を変えながらセルを選択式にするVBAプログラム

それでは本題である、領域を変えながらセルを選択式にしていくサンプルコードをご紹介します。

Sub Some_List()
    '8列あるのでFor文を8回設定
    For i = 1 To 8
        '選択式にするセルをアクティブにする
        Cells(1, i).Select
        '選択範囲となる領域を指定する
        fml = "=" & Range(Cells(2, i), Cells(11, i)).Address
        'リスト化実行処理
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=fml
        End With
    Next
End Sub

 

基本的には4行目のリスト化されるセルと6行目のどこを選択範囲に設定するかの2か所をあなたの状況に合わせて変更すればOKです。

 

スポンサーリンク

サンプルコードの実行結果確認

それでは先ほどのサンプルコードを実行してみましょう。

実行前ば冒頭に説明した通り、以下のような状態です。

マクロ実行前のシートの状態

では、実行してみます。

A1セルを確認してみます。

マクロ実行後のA1セルを確認した結果

H1セルを確認してみます。

マクロ実行後のH1セルを確認した結果

どちらも問題なく直下の領域を選択範囲にし、リスト選択式に設定できていますね。

スポンサーリンク

おわりに

というわけで複数のセルを領域変更しながらリストからの選択方式にする方法をご紹介しました。

大量に設定する必要があるときになど、ぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

ぜひ他の記事ものぞいてみてください。

 

それではまた!

コメント

タイトルとURLをコピーしました