Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12508 / 13645 ツリー ←次へ | 前へ→

【10155】Findメソッド クレア 04/1/9(金) 10:07 質問
【10156】Re:Findメソッド クレア 04/1/9(金) 10:22 回答
【10169】Re:Findメソッド Jaka 04/1/9(金) 13:17 発言
【10170】Re:Findメソッド クレア 04/1/9(金) 14:37 お礼

【10155】Findメソッド
質問  クレア  - 04/1/9(金) 10:07 -

引用なし
パスワード
   object.Find(what, after, lookIn, lookAt, searchOrder, searchDirection, matchCase, matchByte)

Findメソッドは、上記のように記述しますが、
「完全に同一なセルだけを検索する」という引数がありません。
どうしたら、「完全に同一なセルだけを検索する」という検索ができるのでしょうか?
ご存知の方、是非おしえてください。
よろしくお願いします。

【10156】Re:Findメソッド
回答  クレア  - 04/1/9(金) 10:22 -

引用なし
パスワード
   ▼クレア さん:
こんにちは。
検索のヘルプで、
「編集」「検索」メニュー「完全に同一なセルだけを検索する」のチェック項目
に関するパラメータは、lookat=xlWholeだそうです。たとえば、
" set dummy = selection.Find(What:=""aa"", After:=ActiveCell, LookIn:=xlFormulas,"
"LookAt:=xlWhole,searchOrder:=xlByRows,SearchDirection:=xlNext,MatchCase:=False)"
で、検索を実行したときに、パラメータを記憶するので、一番はじめにダミーの検索を
一行オートオープンに記述しましょう。
レジストリなどの方法もある(?)でしょうが、後々のことを考えて、前者の方がいいでしょう。

【10169】Re:Findメソッド
発言  Jaka  - 04/1/9(金) 13:17 -

引用なし
パスワード
   理解して使ってイませんが...。

Dim Fcl As Range, FindSt As String
FindSt = 5.001
With ActiveSheet.Cells
  Set Fcl = .Find(FindSt, After:=Cells(Rows.Count, Columns.Count), LookAt:=xlWhole, MatchCase:=True, MatchByte:=True)
  If Not Fcl Is Nothing Then
    Fcl.Select
    'Set Fcl = .FindNext(After:=Fcl)
  End If
End With


Dim Fcl As Range, FindSt As String
FindSt = 5.001
With ActiveSheet.Range("A1:J30")
  Set Fcl = .Find(FindSt, After:=Range("J30"), LookAt:=xlWhole, MatchCase:=True, MatchByte:=True)
  If Not Fcl Is Nothing Then
    Fcl.Select
    'Set Fcl = .FindNext(After:=Fcl)
  End If
End With

普段は、数字の丸めを気にしなければ、手抜きでこんだけで済ませちゃします。
Set Fcl = .Find(FindSt, After:=Range("J30"), LookAt:=xlWhole, MatchCase:=True)

【10170】Re:Findメソッド
お礼  クレア  - 04/1/9(金) 14:37 -

引用なし
パスワード
   ▼Jaka さん:
こんにちは!
なるほど。Jakaさんの方でも流してみようと思います!
ありがとうございました!!

12508 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free