dポイントプレゼントキャンペーン実施中!

Excelで検索マクロを作るのに

Sub test01()
Application.Dialogs(xlDialogFormulaFind).Show
End Sub

を記述しましたが検索画面で「半角と全角を区別する」にチェックが入ってしまっていますが、チェックがない状態で立ち上げるにはどうしたら良いでしょうか?

A 回答 (3件)

■ 旧検索ダイアログで表示



Find メソッドを実行すると、LookIn, LookAt, SearchOrder, MatchByte
の各検索オプションが Excel に記憶され、次回に反映されます。

この性質を利用し、ダイアログを呼び出す前に一度検索オプション設定用
にダミー検索を行うようにします。

Sub Sample1()
  ' // ダミー検索
  ' // MatchByte:全角・半角を区別する
  ActiveCell.Find What:=ActiveCell.Value, _
          LookIn:=xlValues, _
          LookAt:=xlPart, _
          SearchOrder:=xlByRows, _
          MatchByte:=False
  ' // 検索ダイアログ表示
  Application.Dialogs(xlDialogFormulaFind).Show
End Sub

■ Excel2002 以降の新検索ダイアログを表示したい場合

Dialogs() では Excel2002 以降搭載されている新検索ダイアログ
が表示できません。そこで多少工夫が必要で、メニューバーの
コマンドを実行する形で開きます。その他の考え方は一緒です。

Sub Sample2()
  ' // ダミー検索
  ActiveCell.Find What:=ActiveCell.Value, _
          LookIn:=xlValues, _
          LookAt:=xlPart, _
          SearchOrder:=xlByRows, _
          MatchByte:=False
  ' // 検索ダイアログ表示
  With Application.CommandBars.Add(Temporary:=True)
    .Controls.Add(ID:=1849).Execute
    .Delete
  End With
End Sub

この回答への補足

ログイン方法にとまどってしまい書き込み遅くなりました。
回答有難う御座います。
Excel2000で全シートからある文字を検索したいのですが
検索したい文字がそのシートにない場合1回1回止まってしまいます。
どうしたら全シート横断検索出来るでしょうか?

補足日時:2007/06/06 00:13
    • good
    • 0

> どうしたら全シート横断検索出来るでしょうか?



全シートを選択した状態で検索すれば良いでしょう。

というか、この点は既にお気づきになっているのでしょう?
他サイトでも回答がついているようですし....
    • good
    • 0
この回答へのお礼

有難う御座いました。

お礼日時:2007/06/06 22:08

こんばんは。



半角、全角だけをオフにするのでしたら、

第7引数を、0 にすればよいです。

Application.Dialogs(xlDialogFormulaFind).Show , , , , , , 0

ただし、旧検索ダイアログですから、最近のバージョンでする場合は、
おそらく、ダミーで、最後の行に、

 Cells.Find ""

などと、入れておいたほうが無難だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!