Danが[検索]ダイアログボックスを表示すると、デフォルト設定ではワークシート内を検索し、数式を検索します。彼はデフォルトをワークブック内に置き、値を調べたいので、デフォルトを変更する方法があるかどうか疑問に思っています。

Excelでは、[検索]ダイアログボックスでデフォルトに必要な設定を指定することはできません。ただし、この一見制限を回避する方法は少しありますが、少なくとも部分的な方法です。 Excelは、Excelセッション全体の[検索]ダイアログボックスの最後の設定を記憶しています。 (Excelを終了して再起動するまで、設定はリセットされません。)これは、ダイアログボックスで必要な設定を設定する小さなマクロを作成するだけでよいことを意味します。

これを行うには2つの方法があります。 1つ目は、次のように、ダイアログボックスのオプションを直接設定するマクロを作成することです。

Sub SetFind1()

Application.Dialogs(xlDialogFormulaFind).Show,2,2 End Sub

2番目の方法は、次のように、CellsオブジェクトのFindメソッドを利用することです。

Sub SetFind2()

Dim c As Range     c = Cells.Find(What:="", LookIn:=xlValues, LookAt:=xlPart)

End Sub

これらのどちらも、ある程度は問題なく機能します。 (これについては後で詳しく説明します。)必要なのは、Excelを最初に起動したときに、手動で、またはAuto_Openマクロの一部としてマクロを実行することだけです。ダイアログボックスの設定は、手動で変更しない限り、Excelセッションの残りの部分で変更されます。

さて、要点まで。ダイアログボックスの[範囲内]設定を変更する方法がないようです。この設定は、デフォルトでワークシートを参照します。手動でワークブックに変更でき、Excelは現在のセッションの設定を忠実に記憶します。ただし、VBA内で設定を変更することはできません。上記のサンプルマクロはどちらも、この特定の設定を変更しないことに注意してください。さらに、2つの設定(WithinとLook In)を変更するマクロを記録すると、次のようになります。

Sub Macro1()

' ' Macro1 Macro ' '     Sheets("Sheet1").Select     Cells.Find(What:="", After:=ActiveCell, LookIn:=xlValues, _         LookAt:=xlPart, SearchOrder:=xlByRows, _         SearchDirection:=xlNext, MatchCase:=False).Activate End Sub

このマクロが存在するブックを保存し、Excelを再起動して、[検索]ダイアログボックスの設定を確認すると(Ctrl + Fを押す)、設定がワークシート内の検索と検索のデフォルトに戻っていることがわかります。数式で。マクロを実行してから、ダイアログボックスをもう一度確認します。ワークシート内の値を検索するための設定であることがわかります。 InsideをWorkbookに設定したときに記録した場合でも、マクロはWithin設定を設定しません。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8801)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。