作り手が前もって用意する
八木くんがニッコリ笑います。
「その通りです。
空の文字列をFindメソッドで検索しても意味が無いので、
こんな感じにIfステートメントを追加したらどうでしょう?」
With Worksheets("リスト設定")
If ListName <> "" Then
Set o = .Rows(1).Find(ListName)
If Not o Is Nothing Then
c = o.Column
r = .Cells(Rows.Count, c).End(xlUp).Row
Set ListRange = .Range(.Cells(2, c), .Cells(r, c))
リスト範囲設定 = True
End If
End If
End With
「ああ…。こんなこと、考えもしなかったわ。
てっきりユーザーが、こちらの想定通りに操作してくれるものだとばっかり思ってた…。
八木っちの言うとおりね。
ユーザーが何をしてもいいように、作り手が前もって用意しておかないと…」
「(なんだい、なんだい!
…俺に聞いてくれればそんなこと、いつでもレクチャーできたのに…!
八木に美味しいトコ、持ってかれちゃったじゃないか!)」
泉先輩と八木くんの後ろ姿を、歯噛みしながら星くんが見つめます。
隣では岬さんが、真剣な表情で、八木くんの解説を聞いています。
「…そういった意味では呼び出し部にも、制限をかけておいたほうがいいですね。
Worksheet_SelectionChangeイベントで処理の対象となる行を、指定しておいたほうが安心ですよ」
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ListName As String, ListRange As Range
If Target.Row > 3 Then
ListName = Cells(3, Target.Column).Value
:
「こんな感じで…
4行目以降のセルが選択されたときだけ、リストを設定する処理が動くように制限します。
1~3行目は、リストを設定する必要がありませんよね?」