(サンプルA) Dim myrange As Range Dim sagasu As String sagasu = ooxx Set myrange = Worksheets("未処理").Range("AE:AE").Find(what:=sagasu) (サンプルB) Dim list_name As String Dim myrange As Range list_name = ListBox1.List(intIndex) Set myrange = Worksheets("登録").Range("b:b").Find(what:=list_name) この2つを比べると、 Range("AE:AE") のところが大文字になっているだけの違いのようです。それで、小文字に変えたところ、ちゃんと動いてくれたのですが、一回閉じてまた立ち上げたら、またエラーになってしまいました。こんどはお手上げです。 誰か、考えられる原因が分かる人がいましたらよろしくお願いします
Private Sub ListBox2_Click()
Dim intIndex As Integer
Dim list_name As String 'リストボックスで選択された項目
Dim myrange As Range 'sagasu に対応するセル(の場所)
Dim kamoku As String '文字
Dim sagasu As String '文字
kamoku = Label_B.Caption
Dim ri As String 'セルの中の値(数値)
Dim si As String '同上
For intIndex = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(intIndex) = True Then
list_name = ListBox2.List(intIndex)
Label_L.Caption = list_name '同じユーザーフォームの中のラベルに表示させる
sagasu = kamoku & list_name
Set myrange = Worksheets("未処理").Range("ae:ae").Find(what:=sagasu, LookAt:=xlPart, MatchCase:=False, MatchByte:=False)
ri = myrange.Offset(0, -2).Value 'myrange の場所を基準にセルを参照して導き出される数値
si = myrange.Offset(0, -1).Value
If kamoku = "xxx" Or kamoku = "ooo" Then
Label_Z.Caption = ri - si
Else
Label_Z.Caption = si - ri '導き出された数値を同じラベルに表示
End If
End If
Next intIndex
End Sub