回答編集履歴

1

追記

2020/03/10 09:17

投稿

mattuwan
mattuwan

スコア2136

test CHANGED
@@ -151,3 +151,127 @@
151
151
 
152
152
 
153
153
  参考になれば。。。
154
+
155
+
156
+
157
+ シート上用に改変しました。
158
+
159
+ ```ExcelVBA
160
+
161
+ Option Explicit
162
+
163
+
164
+
165
+ Dim mrngFind As Range
166
+
167
+ Dim mrngAfter As Range
168
+
169
+
170
+
171
+ Private Sub CommandButton1_Click()
172
+
173
+ Dim c As Range
174
+
175
+ Dim sKeyWord As String
176
+
177
+
178
+
179
+ sKeyWord = Me.TextBox1.Text
180
+
181
+ If mrngFind Is Nothing Then Setオブジェクト初期化
182
+
183
+ Set c = mrngFind.Find(sKeyWord, mrngAfter, , xlPart)
184
+
185
+ If c Is Nothing Then GoTo WayOut
186
+
187
+ With c
188
+
189
+ Application.Goto .Cells
190
+
191
+ Me.Label1.Caption = .Value
192
+
193
+ End With
194
+
195
+ Me.CommandButton1.Caption = "次へ"
196
+
197
+
198
+
199
+ Set mrngAfter = c
200
+
201
+ Exit Sub
202
+
203
+
204
+
205
+ WayOut:
206
+
207
+ MsgBox sKeyWord & "は見つかりませんでした。", vbExclamation
208
+
209
+ Setオブジェクト初期化
210
+
211
+ End Sub
212
+
213
+
214
+
215
+ Private Sub TextBox1_Change()
216
+
217
+ Me.CommandButton1.Enabled = Len(Me.TextBox1.Text)
218
+
219
+ Me.Label1.Caption = ""
220
+
221
+ End Sub
222
+
223
+
224
+
225
+ Private Sub TextBox1_LostFocus()
226
+
227
+ mFlg = False
228
+
229
+ End Sub
230
+
231
+
232
+
233
+ Private Sub Setオブジェクト初期化(Optional ByVal flg As Boolean = True)
234
+
235
+ If flg Then Me.TextBox1.Text = ""
236
+
237
+
238
+
239
+ Set mrngFind = Me.Range("D:D")
240
+
241
+ Set mrngAfter = mrngFind(mrngFind.Count)
242
+
243
+ Me.CommandButton1.Caption = "検索"
244
+
245
+ mFlg = False
246
+
247
+ End Sub
248
+
249
+ ```
250
+
251
+
252
+
253
+ 動作確認してたら、わけわかんなくなったので、
254
+
255
+ 期待通りの動きになってないかも^^;
256
+
257
+ 参考になれば。。。(ならないかも^^;)
258
+
259
+
260
+
261
+ ※注
262
+
263
+ 検索ボタンは何も入力されてない時はメッセージを出すのではなく、
264
+
265
+ そもそもボタンを押せないようにするといいです。
266
+
267
+ やたらとメッセージを出されると、使う側はうるさいし、
268
+
269
+ クリックをいちいち余分にしないといけなくなるので。
270
+
271
+ プロパティウィンドウで、
272
+
273
+ Enabledプロパティの初期値をFalseにしておきます。
274
+
275
+ Labelコントロールは、
276
+
277
+ コントロールの選択から探してください。