プロが教える店舗&オフィスのセキュリティ対策術

シート1のA列には氏名のデータがあり
シート1のB1から⇒以降には資格のデータがある。
※ここではA1からF1まで値が入力されている。

シート2には氏名に対して
資格を取得していれば「○」
資格を取得していなければ「×」
必要がなければ「-」
のステータスをVBAで作成し、プルダウンでえらべるようにセットしたいです。

氏名と資格の数は入力の際に固定の値で決まってはいないので、変数でしたりループで処理したりするべきなのか
考え方がわかりませんでした。

プルダウンのみの作り方とかならネットで調べて作成できたのですが
複合するとなると私の力では理解できませんでしたので、ご教授お願いいたします。

「条件がついたプルダウンの作成方法(VBA」の質問画像

A 回答 (2件)

質問文も添付画像も意味不明ですが、要するに「氏名と資格の数が可変のセル範囲に対して、VBAで入力規則(リスト)を設定したい」ってことですよね?


であれば、変数を使ったループでは無く、こんな感じで、セル範囲を求めちゃった方が簡単なような気がします。

Sub Macro1()
Dim valRng As Range
With Range("A1").CurrentRegion
Set valRng = Range(.Cells(2, 2), .Cells(.Cells.Count))
End With
With valRng.Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="○,×,-"
End With
End Sub
    • good
    • 2

>氏名と資格の数は入力の際に固定の値で決まってはいないので、



少なくとも『既に選択されているセルの値を変更する事はない』と思えるのですが、そうなると『どこから資格の取得有無や必要性の是非』に関するデータを取得するのかなって疑問を持ってしまった初級レベルなジジィです。

それにシートが分かれて存在している点も気になりますし、仕様が明確でないと間違って入力済みのデータを消してしまうかもですよ。
入力規則のリスト仕様ならマウスでフィルコピーでもセル範囲を選択してのコピペでも出来そうですけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!