エクセルマクロで、入力規則のリストの何番目か取得するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
入力規則のリストの何番目か取得
以下のExcelVBAを実行すると、入力規則リストの上から何個目を選択しているか調べます。
Sub ドロップダウンリスト何個目の値か確認()
Dim i As Long
Dim j As Long
Dim tmp As Variant
'セルA2の入力規則リスト内容を取得
If Cells(2, 1).Validation.Type = xlValidateList Then
tmp = Split(Cells(2, 1).Validation.Formula1, ",")
End If
'A2から最終行までループ
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
'入力規則リストをループ
For j = 0 To UBound(tmp)
'A列の値からリストの何番目かチェック
If Cells(i, 1) = tmp(j) Then
Cells(i, 2) = j
Exit For
End If
Next j
Next i
End Sub
マクロ実行前
セル [A2:A10] に、入力規則(リスト)を設定しています。
すべて同じ「元の値」を設定しています。
マクロ実行後
入力規則の何番目を選択しているか出力します。
「元の値」の1番上は「0」から始まります。
下図の場合「a」は「0」が返ります。
入力規則のリストの何番目か取得(入力規則が複数ある場合)
以下のExcelVBAを実行すると、入力規則リストの何番目かを調べます。
Sub 入力規則リスト何番目の項目かチェック()
Dim i As Long
Dim j As Long
Dim tmp As Variant
'A2から最終行までループ
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
'入力規則リスト内容を取得
If Cells(i, 1).Validation.Type = xlValidateList Then
tmp = Split(Cells(i, 1).Validation.Formula1, ",")
End If
'入力規則リストをループ
For j = 0 To UBound(tmp)
'A列の値からリストの何番目かチェック
If Cells(i, 1) = tmp(j) Then
Cells(i, 2) = j
Exit For
End If
Next j
Next i
End Sub
マクロ実行前
セル [A2:A10] に、入力規則(リスト)を設定しています。
セルの色ごとに「元の値」が異なります。
・黄色セル :a,b,c,d,e,f
・青セル :あ,い,う,え,お
・オレンジセル:りんご,いちご,めろん
マクロ実行後
入力規則の何番目を選択しているか出力します。
番号は「0」から始まります。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】入力規則を自動処理する方法まとめ
【エクセルマクロ】入力規則を自動操作する:超便利5選
...
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク