デフォルトでワークブック全体を検索するようにExcelを設定する


12

Microsoft ExcelでCTRL+ を使用して検索するFと、デフォルトでは現在のワークシート内でのみ検索されます。

デフォルトでワークブック全体を検索するように設定するにはどうすればよいですか?私が持っていOffice 2010ます。これも可能ですか?特定のワークブックまたはワークシートにこれを設定することは可能ですか?それが必要なものであれば、レジストリを編集しても大丈夫です。

注:ほぼ10年後、私はまだこれをしたいと思っていますが、今はExcel 2016/2019です。

回答:


3

ThisWorkbookモジュールのWorkbook_Openマクロで次のようにこれを行うことができます。

Private Sub Workbook_Open()

Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"

End Sub

これにより、現在のワークブックのセッションに設定されます。

これを常にデフォルトにするには、パーソナルマクロブックを作成する必要があります。


1
これにはマクロを使用したくないです。
ジョエルCoehoorn

2
@Joel、ほとんどの場合、設定はExcelの.pipファイルに保存されます。これは簡単に見つけることができますが、バイナリ形式であるため、特定のエディターを見つけることができません(素晴らしいプロジェクトです)。おそらく、標準の16進エディタを入手して解決することはできますが、それはプロジェクトです。
ランスロバーツ

2

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

0
  1. ホームリボンの[検索/選択]アイコンを選択します

  2. 検索をクリックします

  3. 右下の「オプション」ボックスをクリックします

  4. 左側には、「Within」というドロップダウンがあります

  5. 「シート」または「ワークブック」を選択します

このサイトはデフォルトを変更する方法を説明します


1
これは、2つの理由で機能しません。まず、このオプションは各ドキュメントと共に保存されません。スプレッドシートを開き、変更を加え、スプレッドシートを保存し、Excelを閉じて、スプレッドシートを再度開くと、元の状態に戻ります。第二に、ドキュメントで保存したとしても、自分のマシンで作成されていないドキュメントを多数開く必要があるため、作成元のマシンの(間違った)設定になります。
ジョエルCoehoorn

0

他の回答で提案されているSendkeysコマンドは推奨されません。過去にSendkeysコマンドを実行すると、非常に予期しないアクションが発生し、コンピューターを再起動して回復する必要がある場合がありました。ルーチンをローカルにし、オンデマンドでのみ実行することをお勧めします。便宜上、「q」のようにcntlキーを割り当てることもできます。ワークブック内オプションは、セッションのバランスのために記憶されます。

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub

0

同様の問題がありました。ブックにボタンがあります。ボタンがクリックされた場合、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を使用して適切なショートカットで適切なルーチンに切り替える必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.