スポンサードリンク

検索対象のデフォルトを「値」に変更したい

2019/02/11 20:30 修正

以前は感じなかったのですが、最近検索してもある筈のものが検索に引っかからないと感じることが多いです。

自分の場合そういう時はほぼ検索対象が「数式」になっているためです。
f:id:ExcelLover:20190211175246j:plain

個人的には式の中身を検索対象にすることは稀なので、デフォルトでは「値」に出来ないか調べてみました。

 標準設定の方法はない

自分でExcelのオプションやら設定を周りを確認してみたが見つからず。

ネットで調べてみてもどうやら設定を変えることは出来ないみたい。

であればVBAで変えるしかない。


Find関数で設定変更

以下のコードを実行すれば、検索対象が「数式」から「値」に設定が変更される
2019/02/11 20:30 修正

Sub SearchDefaultChange()
     Worksheets("sheet1").Cells.Find what:="", LookIn:=XlFindLookIn.xlValues
End Sub 


Find関数

引数 内容
what 検索するデータ。 指定できるのは、文字列、または任意の Microsoft Excel のデータ型。
LookIn 検索対象。XlFindLookIn列挙型で指定
・xlFormulas(数式)
・xlValues(値)
・xlNotes(コメント)

Find関数の返り値は最初に見つかったRangeオブジェクトです。

見つからなかった場合はNothingを返します。

上記コードを実行すれば設定は変わるのですが、Excelを終了するたびに設定が初期化されてしまい、検索対象が「数式」に戻ってしまいます。

そこでExcel起動時に実行される「個人用マクロブック」を利用して自動的に検索対象を変更してみます。


個人用マクロブックで自動変更

一度も個人用マクロブックを利用したことがなければ、ブック自体が存在していません。

保存先は下記のフォルダです。(Windows10、Excel2013)

C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART

ファイルがなければ新しく作る必要があります。

左下のマクロ記録から
f:id:ExcelLover:20190211175325j:plain

記録先を個人用マクロブックに変更
f:id:ExcelLover:20190211175341j:plain

なにかしら作業を記録して、記録を終了。

新しく出来たPERSONAL.XLSBのThisWorkbookオブジェクトのOpenイベントに先程のコードを記載して保存で終了です。

f:id:ExcelLover:20190211175401j:plain
f:id:ExcelLover:20190211175413j:plain


まとめ

細かいネタですが、こういう自分にフィットした設定になっていると、作業中に躓かずに済むのでスムーズに進むようになるのではないでしょうか。

追記

当初記載していたコードでは新規にExcelファイルを開いた時は問題がなかったが、既存のファイルを開いたときにWorkbook.openイベントでglobalオブジェクトでエラーが発生していた。

こちらの記事を参考にWorkbookから記載をしたところエラーを回避することが出来た。 qiita.com