[検索]コマンドを使用すると、Excelはデフォルトで、情報の検索に使用する順序として「行で検索」します。ただし、ニーズは異なる場合があります。ほとんどの場合、列で検索する必要があるかもしれません。検索を開始するときにこの設定を変更することはできますが、Excelが列の検索から開始するように、デフォルトを変更するのは良いことではないでしょうか。

残念ながら、Excelが検索方法を記憶するように指定できる設定はありません。ただし、マクロを使用してデフォルトの検索順序を設定することはできます。次の例を考えてみましょう:

Private Sub Workbook_Open()

On Error Resume Next     Cells.Find("", , , , xlByColumns, , , False) = True End Sub

このマクロは、検索順序を列に変更するだけです。実行後(つまり、ブックを開いた後)、以降の検索はデフォルトで列による検索になります。

Excelが、現在のExcelセッション中に後続のすべての検索で最後に使用された検索順序を記憶しているという事実は、有利に使用できます。次のマクロは、ブックを閉じることを除いて、基本的に前の例と同じことを行います。

Sub Auto_Open()

Worksheets("sheet1").Cells.Find _       What:="", _       After:=ActiveCell, _       LookIn:=xlFormulas, _       LookAt:=xlWhole, _       SearchOrder:=xlByColumns, _       SearchDirection:=xlNext, _       MatchCase:=True

ThisWorkbook.Close savechanges:=False End Sub

このマクロを空白のブックに入れてから、そのブックをxlStartフォルダーに保存すると、Excelを起動するたびに開かれます。

ブックを開くと、必要な設定を使用して1回の検索を実行し、それ自体を閉じます。最終的な結果として、検索順序は列に設定され、後続の検索は希望どおりに実行されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12494)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: