こんにちは、ヒガシです。
前回の記事では、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セルを確認してみます。
H1セルを確認してみます。
どちらも問題なく直下の領域を選択範囲にし、リスト選択式に設定できていますね。
おわりに
というわけで複数のセルを領域変更しながらリストからの選択方式にする方法をご紹介しました。
大量に設定する必要があるときになど、ぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
それではまた!
コメント