回答編集履歴
1
追記
answer
CHANGED
@@ -74,4 +74,66 @@
|
|
74
74
|
(同じプロシージャを再度実行する時も)、
|
75
75
|
モジュールレベルで変数を宣言します。
|
76
76
|
|
77
|
-
参考になれば。。。
|
77
|
+
参考になれば。。。
|
78
|
+
|
79
|
+
シート上用に改変しました。
|
80
|
+
```ExcelVBA
|
81
|
+
Option Explicit
|
82
|
+
|
83
|
+
Dim mrngFind As Range
|
84
|
+
Dim mrngAfter As Range
|
85
|
+
|
86
|
+
Private Sub CommandButton1_Click()
|
87
|
+
Dim c As Range
|
88
|
+
Dim sKeyWord As String
|
89
|
+
|
90
|
+
sKeyWord = Me.TextBox1.Text
|
91
|
+
If mrngFind Is Nothing Then Setオブジェクト初期化
|
92
|
+
Set c = mrngFind.Find(sKeyWord, mrngAfter, , xlPart)
|
93
|
+
If c Is Nothing Then GoTo WayOut
|
94
|
+
With c
|
95
|
+
Application.Goto .Cells
|
96
|
+
Me.Label1.Caption = .Value
|
97
|
+
End With
|
98
|
+
Me.CommandButton1.Caption = "次へ"
|
99
|
+
|
100
|
+
Set mrngAfter = c
|
101
|
+
Exit Sub
|
102
|
+
|
103
|
+
WayOut:
|
104
|
+
MsgBox sKeyWord & "は見つかりませんでした。", vbExclamation
|
105
|
+
Setオブジェクト初期化
|
106
|
+
End Sub
|
107
|
+
|
108
|
+
Private Sub TextBox1_Change()
|
109
|
+
Me.CommandButton1.Enabled = Len(Me.TextBox1.Text)
|
110
|
+
Me.Label1.Caption = ""
|
111
|
+
End Sub
|
112
|
+
|
113
|
+
Private Sub TextBox1_LostFocus()
|
114
|
+
mFlg = False
|
115
|
+
End Sub
|
116
|
+
|
117
|
+
Private Sub Setオブジェクト初期化(Optional ByVal flg As Boolean = True)
|
118
|
+
If flg Then Me.TextBox1.Text = ""
|
119
|
+
|
120
|
+
Set mrngFind = Me.Range("D:D")
|
121
|
+
Set mrngAfter = mrngFind(mrngFind.Count)
|
122
|
+
Me.CommandButton1.Caption = "検索"
|
123
|
+
mFlg = False
|
124
|
+
End Sub
|
125
|
+
```
|
126
|
+
|
127
|
+
動作確認してたら、わけわかんなくなったので、
|
128
|
+
期待通りの動きになってないかも^^;
|
129
|
+
参考になれば。。。(ならないかも^^;)
|
130
|
+
|
131
|
+
※注
|
132
|
+
検索ボタンは何も入力されてない時はメッセージを出すのではなく、
|
133
|
+
そもそもボタンを押せないようにするといいです。
|
134
|
+
やたらとメッセージを出されると、使う側はうるさいし、
|
135
|
+
クリックをいちいち余分にしないといけなくなるので。
|
136
|
+
プロパティウィンドウで、
|
137
|
+
Enabledプロパティの初期値をFalseにしておきます。
|
138
|
+
Labelコントロールは、
|
139
|
+
コントロールの選択から探してください。
|