Macの「メモ」の検索ができないとき

Macの「メモ」アプリでは、検索がうまくいかないことがよくあります。
AppleScriptを使って検索をする方法を紹介します。

以前は検索ワードの先頭にダブルクォーテーションを付ける方法でなぜか検索できていましたが、アップデートでできなくなったようです。

問題の概要

「メモ」アプリの右上にある虫眼鏡マークを使った検索が、すべての結果を表示しないことがあります。
あるとわかっているメモを探すときはまだ良いですが、メモがあるかどうかを探す時は深刻ですよね。
広く知られている問題のようです。

Search Feature Icon in Mac Memo App

一般的な解決策

よく挙げられる解決策には、以下のようなものがあります。

  • Siriの学習対象からメモを外し、Macを再起動して設定を元に戻す。
  • iCloudの同期を再度行う。
  • Spotlight検索の対象からHD全体を一時的に外し、その後元に戻す。
  • 古いメモを更新することで、インデックスを再構築する。

これらの方法は、基本的にインデックスを再構築することを目的としているようですが、少なくとも私の環境では、これらの手順を実行しても問題が解決しませんでした。仮にできたとしても、一部の方法は時間がかかりすぎるため、日常的な使用には不向きです。

AppleScriptを使った検索

検索のやりかた

後述の初期設定をした後に、⌃F(control + F)をクリックすると以下のようなダイアログが出ます。

検索するキーワードを入力してください:

検索したいワードを入力してOKをクリックし、10秒程度待ちます。
メモの一行目を参照したリストが現れるので、選択するとメモが開きます。

開くメモを選択してください:

メモのどこかに検索ワードがあれば、一行目になくてもヒットします。

デメリット
  • #(ハッシュマーク)を含むワードを検索できない(#を外せばヒットします)
  • 初期設定が面倒
  • 検索に10秒弱かかる(ただし、今のところ確実に検索できています)

初期設定

Automatorを起動します。

Automator_icon

画面の右上に虫眼鏡マーク(Spotlight)があるので「auto」と打ち込むと早いです。

Spotlight

↑この画像の中央のアイコンです。もしくはcommant+スペースキーでも開きます。

“新規書類”をクリックして、クイックアクションを選択します。

quick_action

画面左上のアクションをクリックし、ライブラリツリーのユーティリティの中から、AppleScriptを実行を選択してダブルクリックしてください。

次のようなコードが記載されたウィンドウが表示されます。

on run {input, parameters}

		(* Your script goes here *)

		return input
end run

これを全て消します。代わりに、次のコードを貼り付けます。

set theKeyword to text returned of (display dialog "検索するキーワードを入力してください:" default answer "")
tell application "Notes"
	set targetFolder to folder "Notes" of default account
	set searchResults to {}
	set resultTitles to {}
	set allNotes to every note of targetFolder
	repeat with aNote in allNotes
		if body of aNote contains theKeyword then
			set end of searchResults to aNote
			set end of resultTitles to name of aNote
		end if
	end repeat
	if (count of searchResults) > 0 then
		set chosenNote to (choose from list resultTitles with prompt "開くメモを選択してください:")
		if chosenNote is not false then
			set chosenIndex to 0
			repeat with i from 1 to count of resultTitles
				if item i of resultTitles is equal to (item 1 of chosenNote) then
					set chosenIndex to i
					exit repeat
				end if
			end repeat
			set targetNote to item chosenIndex of searchResults
			show targetNote
			activate
		end if
	else
		display dialog "該当するメモが見つかりませんでした。" buttons {"OK"} default button "OK"
	end if
end tell
Automator画面

「ファイル」→「保存」をクリックして、クイックアクションの名前に任意の文字列(ここでは”notes_search”としておきます)を入力し、保存を押します。

次に、ショートカットするキーの設定をします。左上のAppleのロゴから、「システム設定」→「キーボード」を開き、キーボードショートカットをクリック、左側のサービスを選択します。

画面の右側の「一般」ツリーの下に、前項で作成したクイックアクションの名前がありますので、選択して「なし」の部分をダブルクリックし、controlを押したままFを押します。完了をクリックします。
お好みのショートカットキーで結構ですが、メモアプリで使用しているショートカットキーと被らないようにする必要があります。もし被っても検索窓が出ないだけですので、再度設定すると良いです。自分の押しやすいキーにしてください

キーボード設定

初めて起動した時のみ、以下のようなダイアログが現れるので、Automatorがアプリへアクセスすることを許可してください。

許可

その他の方法

以前は検索ワードの先頭にダブルクォーテーション(”)を付けて検索するというよく分からない方法が使えたのですが、いつの間にか使えなくなっていました。

Spotlight2

また、Spotlight検索では「 kind:document」と検索ワードの後ろにつけることで、書類の中身だけを対象とした検索が可能になり、このときメモの内容も検索対象に含まれます。これも検索精度は高いように思います。これはApple公式でサポートされている方法です。

iPhoneの場合

体感ですが、iPhoneも、Spotlight検索のほうがメモアプリの検索成功率が高いと思います。

Spotlight検索を起動するには、(Face IDを搭載したモデルの場合)ホーム画面の下部にある”検索”ボタンをタップするか、ホーム画面またはロック画面で下にスワイプします。

コメント

  1. na より:

    普段iPhoneの純正メモアプリを愛用してて、最近検索で出てこないメモがあってとても困っていました。この記事を参考にしてやってみたらそれが改善されました!ほんとに感謝してます。記事を書いてくださりありがとうございました。

タイトルとURLをコピーしました