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で可能ではないように思われます。私は "引数はオプションではない"のようなコンパイラエラーだけを取得します。
私はここで何か非常に簡単に恋しいですか?
事前
ユーザはCTRL-F行い、見つかったセルを選択する優れた後、ストアが可変にActiveCellの? – findwindow
Excelで使用しているコードを表示できますか?オブジェクトモデルが異なり、 '.Find'は同じ構文ではありません。おそらく構文エラーですが、コードを表示できない限り、トラブルシューティングは難しいです。 –
あなたの答えをありがとう。しかし、アクティブなセルなどを格納することは、私の解決策ではありません。私のプログラムが動いている間、問題は何かの検索ではないからです。問題は、一部のイベントでバックグラウンドで実行されるマクロがあることです。 CTRL-Fが間違った検索語を表示していて、その理由をユーザーが知らないのは不思議です。 – Futti