Microsoft ExcelでCTRL+ を使用して検索するFと、デフォルトでは現在のワークシート内でのみ検索されます。
デフォルトでワークブック全体を検索するように設定するにはどうすればよいですか?私が持っていOffice 2010
ます。これも可能ですか?特定のワークブックまたはワークシートにこれを設定することは可能ですか?それが必要なものであれば、レジストリを編集しても大丈夫です。
注:ほぼ10年後、私はまだこれをしたいと思っていますが、今はExcel 2016/2019です。
Microsoft ExcelでCTRL+ を使用して検索するFと、デフォルトでは現在のワークシート内でのみ検索されます。
デフォルトでワークブック全体を検索するように設定するにはどうすればよいですか?私が持っていOffice 2010
ます。これも可能ですか?特定のワークブックまたはワークシートにこれを設定することは可能ですか?それが必要なものであれば、レジストリを編集しても大丈夫です。
注:ほぼ10年後、私はまだこれをしたいと思っていますが、今はExcel 2016/2019です。
回答:
ThisWorkbookモジュールのWorkbook_Openマクロで次のようにこれを行うことができます。
Private Sub Workbook_Open()
Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"
End Sub
これにより、現在のワークブックのセッションに設定されます。
これを常にデフォルトにするには、パーソナルマクロブックを作成する必要があります。
Excelがスペイン語(私のような)の場合に機能するように修正を加えました
Private Sub Workbook_Open()
Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)
Application.CommandBars.FindControl(ID:=1849).Execute
Select Case lCountryCode
Case 34 'spanish
SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
SendKeys "%(t)%(h)W~{ESC}"
End Select
End Sub
ホームリボンの[検索/選択]アイコンを選択します
検索をクリックします
右下の「オプション」ボックスをクリックします
左側には、「Within」というドロップダウンがあります
「シート」または「ワークブック」を選択します
このサイトはデフォルトを変更する方法を説明します
他の回答で提案されているSendkeysコマンドは推奨されません。過去にSendkeysコマンドを実行すると、非常に予期しないアクションが発生し、コンピューターを再起動して回復する必要がある場合がありました。ルーチンをローカルにし、オンデマンドでのみ実行することをお勧めします。便宜上、「q」のようにcntlキーを割り当てることもできます。ワークブック内オプションは、セッションのバランスのために記憶されます。
Sub myFind()
Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub
同様の問題がありました。ブックにボタンがあります。ボタンがクリックされた場合、Excelで、デフォルトの「シート内」ではなく、「すべてのワークブック内で検索」オプションがすでに選択されている検索ダイアログを開きます。
さらに、非表示または表示されているオプションに関係なくボタンを機能させ、誰かが手動で変更を加えたかどうかを望んでいました。これは、Excelがデフォルトで起動時にオプションを表示しないが、誰かが以前に表示した場合に次回記憶し、再び表示するため、注意が必要です。
キーストロークが機能することを確認するには、初期状態に関係なく設定を設定する一連のキーストロークが必要です。かなりいじくり回しましたが、うまくいくものを見つけました。
英語版のExcelのコードは次のとおりです。他の言語では、それに応じてキーを変更する必要があります。
Sub Commanbutton_Click()
Cells(1, 1).Select
SendKeys "^f", True
SendKeys "{TAB 15}"
SendKeys " ", True
SendKeys "%t%t", True
SendKeys "{TAB 2}", True
SendKeys "{DOWN}{DOWN}{ENTER}", True
SendKeys "%t%t", True
End Sub
手動で試すことができます:
検索ダイアログのCTRL + Fを押します。TABを15回押して、[オプション]または[検索範囲]ドロップダウンに移動します。
プレススペースと
1)オプションが表示されるか、2)ドロップダウンがアクティブになり、何も起こりません
Alt + Tを2回押して、カーソルを検索入力ボックスにリセットします
TABを2回押すと、何に関係なくドロップダウン内の検索に移動します(前の手順でオプションが実際に表示されることを確認しているためです!)
下矢印を2回押して「ワークブック」を選択し、ENTERを選択して選択します
Altキーを押しながらTキーを2回押して、カーソルを検索入力ボックスに再度リセットします。
これが同様の問題を抱えている他の誰かを助けることを願っています。多くのグーグルは、VBAで「すべてのワークブック内で検索」を事前に選択することはできないと言っただけですが、この方法は機能します。
異なる言語で動作させるには、言語を確認し、CASEを使用して適切なショートカットで適切なルーチンに切り替える必要があります。