2016-06-28 8 views
0

Excel VBAでCells.Findメソッドを使用するときに最後の(ユーザー定義の)検索語を保存/復元する方法はありますか?Excel VBA最後の検索語を保存/復元する

例:

  • ユーザーが検索ダイアログ(CTRL-F)と "fooの" を探しています。
  • CTRL-FとENTERを押すだけで、検索をやり直すことができます。 (検索語はまだ存在します。)
  • しかしは、マクロが「バー」の検索にCells.Find使用している場合は、検索語がに置き換えられます。
  • 検索のダイアログが「bar」で始まるため、ユーザーは単に「foo」の検索を繰り返すことはできません。

ユーザーは、前回検索した単語や番号を忘れている可能性がありますか?この場合、ダイアログボックスの古い検索用語が非常に役立ちます。 Wordの

私の解決策は単純です:

' // Save the last user defined search term. 
strSearchTermBackup = Selection.Find.Text 

With Selection.Find 
    .Text = "bar" 
    [...] 
End With 

' // Restore the last user defined search term. 
Selection.Find.Text = strSearchTermBackup 

残念ながら、これはExcelで可能ではないように思われます。私は "引数はオプションではない"のようなコンパイラエラーだけを取得します。

私はここで何か非常に簡単に恋しいですか?

事前

+0

ユーザはCTRL-F行い、見つかったセルを選択する優れた後、ストアが可変にActiveCellの? – findwindow

+0

Excelで使用しているコードを表示できますか?オブジェクトモデルが異なり、 '.Find'は同じ構文ではありません。おそらく構文エラーですが、コードを表示できない限り、トラブルシューティングは難しいです。 –

+0

あなたの答えをありがとう。しかし、アクティブなセルなどを格納することは、私の解決策ではありません。私のプログラムが動いている間、問題は何かの検索ではないからです。問題は、一部のイベントでバックグラウンドで実行されるマクロがあることです。 CTRL-Fが間違った検索語を表示していて、その理由をユーザーが知らないのは不思議です。 – Futti

答えて

0

のおかげであなたは、車輪を再発明することがあります...

Find & Replaceダイアログボックス店の歴史あなたのために。テキスト入力ボックスの右にあるドロップダウン矢印をクリックするだけです。そこにユーザーは歴史の価値があるいくつかの検索実行をつかむことができます。

enter image description here

+0

これを指摘してくれてありがとう。私はautomacroからの私の検索タームが検索タームとして表示されていても、歴史の中にないことを認識しています。だから私は思ったほど悪くはありません。 – Futti

関連する問題