Macの「メモ」アプリでは、検索がうまくいかないことがよくあります。
AppleScriptを使って検索をする方法を紹介します。
以前は検索ワードの先頭にダブルクォーテーションを付ける方法でなぜか検索できていましたが、アップデートでできなくなったようです。
問題の概要
「メモ」アプリの右上にある虫眼鏡マークを使った検索が、すべての結果を表示しないことがあります。
あるとわかっているメモを探すときはまだ良いですが、メモがあるかどうかを探す時は深刻ですよね。
広く知られている問題のようです。
一般的な解決策
よく挙げられる解決策には、以下のようなものがあります。
- Siriの学習対象からメモを外し、Macを再起動して設定を元に戻す。
- iCloudの同期を再度行う。
- Spotlight検索の対象からHD全体を一時的に外し、その後元に戻す。
- 古いメモを更新することで、インデックスを再構築する。
これらの方法は、基本的にインデックスを再構築することを目的としているようですが、少なくとも私の環境では、これらの手順を実行しても問題が解決しませんでした。仮にできたとしても、一部の方法は時間がかかりすぎるため、日常的な使用には不向きです。
AppleScriptを使った検索
検索のやりかた
後述の初期設定をした後に、⌃F(control + F)をクリックすると以下のようなダイアログが出ます。
検索したいワードを入力してOKをクリックし、10秒程度待ちます。
メモの一行目を参照したリストが現れるので、選択するとメモが開きます。
メモのどこかに検索ワードがあれば、一行目になくてもヒットします。
初期設定
Automatorを起動します。
画面の右上に虫眼鏡マーク(Spotlight)があるので「auto」と打ち込むと早いです。
↑この画像の中央のアイコンです。もしくはcommant+スペースキーでも開きます。
“新規書類”をクリックして、クイックアクションを選択します。
画面左上のアクションをクリックし、ライブラリツリーのユーティリティの中から、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
「ファイル」→「保存」をクリックして、クイックアクションの名前に任意の文字列(ここでは”notes_search”としておきます)を入力し、保存を押します。
次に、ショートカットするキーの設定をします。左上のAppleのロゴから、「システム設定」→「キーボード」を開き、キーボードショートカットをクリック、左側のサービスを選択します。
画面の右側の「一般」ツリーの下に、前項で作成したクイックアクションの名前がありますので、選択して「なし」の部分をダブルクリックし、controlを押したままFを押します。完了をクリックします。
お好みのショートカットキーで結構ですが、メモアプリで使用しているショートカットキーと被らないようにする必要があります。もし被っても検索窓が出ないだけですので、再度設定すると良いです。自分の押しやすいキーにしてください。
初めて起動した時のみ、以下のようなダイアログが現れるので、Automatorがアプリへアクセスすることを許可してください。
その他の方法
以前は検索ワードの先頭にダブルクォーテーション(”)を付けて検索するというよく分からない方法が使えたのですが、いつの間にか使えなくなっていました。
また、Spotlight検索では「 kind:document」と検索ワードの後ろにつけることで、書類の中身だけを対象とした検索が可能になり、このときメモの内容も検索対象に含まれます。これも検索精度は高いように思います。これはApple公式でサポートされている方法です。
iPhoneの場合
体感ですが、iPhoneも、Spotlight検索のほうがメモアプリの検索成功率が高いと思います。
Spotlight検索を起動するには、(Face IDを搭載したモデルの場合)ホーム画面の下部にある”検索”ボタンをタップするか、ホーム画面またはロック画面で下にスワイプします。
コメント
普段iPhoneの純正メモアプリを愛用してて、最近検索で出てこないメモがあってとても困っていました。この記事を参考にしてやってみたらそれが改善されました!ほんとに感謝してます。記事を書いてくださりありがとうございました。
メモアプリ便利ですよね。コメントいただきありがとうございます!