Evernoteのノートタイトルを一括で変更するためにAppleScriptを書きました。
タイトルにそのノートの作成日を追加します。
目次
Evernoteで1日1ノートのライフログ
Evernoteにライフログを取っています。
毎日「Today’s Lifelog」というノートを作って、そこにその日のログをまとめて記入しておくことで、1日の行動を流れとしてみることができます。

しかし、このやり方だと日毎に作成されるノートのタイトルがすべて同じ「Today’s Lifelog」となってしまいます。
日付で検索すれば目的の日のノートに辿り着くことはできますが、ぱっと見で分かりにくい。
できればタイトルに日付を入れておいて、タイトルで判別できるようにしたい。
でもこのライフログ、もう1,000日以上とってるんですよね。
手動でひとつひとつ変更するのは面倒すぎます。
AppleScriptを使ってEvernoteのノートタイトルを変更する
そこで、AppleScriptを使って、ノートのタイトルを一括で変更することにしました。
AppleScriptに関しては全く知識がなかったのですが、下のリンク先を読んで基礎を学びました。
めっちゃ分かりやすいのでおすすめです。
そんなこんなで下のスクリプトを書きました。
tell application "Evernote" set temp to selection repeat with a in temp set datestring to creation date of a as string set title of a to title of a & " - " & text 1 thru (offset of " " in datestring) of datestring end repeat end tell
上述のサイトで学んだとおり、あらかじめEvernoteでノートを選択しておいてからこのスクリプトを実行すると、選択したノート内で処理を繰り返すようにしています。
ノートの作成日の取得
Evernoteのノート作成日はcreation dateで取得できるので、それを変数datestringに入れておきます。
のちに文字列として扱うので as string としておきます。
普通に取得すると、
というふうに表示されますが、ここでは「作成日」を入れたいので、曜日以降の時間表記は不要です。
曜日も要らないかと思ったのですが、あっても困らないし、あったほうが便利なので残すことにしました。
時間表記の削除(=頭から曜日部分までの取得)が必要なのですが、ここでは曜日と時間の間の半角スペースに注目。
半角スペースが文字列の何番目の文字であるかを調べて、文字列の頭からその位置までを抽出するという方法をとります。
6行目の offset of ” ” in datestring の部分で半角スペースの位置を取得して、
text 1 thru 〜 of datestring で文字列の頭からその位置(の前)までの文字列を抽出しています。
最終的にtitleの内容は
title of a & ” – ” & text 1 thru (offset of ” ” in datestring) of datestring
となっています。
元のタイトルの後ろに「 – 」をつけて、さらにその後ろに作成日(曜日まで)を追加しています。
「Today’s Lifelog」の文字は残しておいたほうが分かりやすいと思ったので残しておきました。
これを実行すると、
Before
↓
After
思いどおりに変更されました。
成功です。
複数選択してまとめて実行してやればOK。
当日以外のノートに対して定期的に実行すれば管理がしやすくなります。
自動化成功
ただ、一つだけ問題点が。
前提として、「Today’s Lifelog」のノートは、自分が寝たときに新しく作成されるようになっています。
たいていの日は深夜12時以降に寝るので、ノートの内容(それぞれのログ)の日付はノートの作成日と同じになっています。
でも、もし12時より前に寝た場合は前の日のうちに新規ノートが作成されてしまうので、ログ内容とタイトルに付く日付がズレてしまいます。
おそらくここ最近では12時より前に寝たことはないと思うので大丈夫だとは思いますが。
ともあれ、これで一気にノートタイトルを変更することができました。
3年分くらいのノートを放置していたので、自動化は本当に助かります。
Evernoteのアップデートに関して
2021.01.16追記
Evernoteがv10.0にアップデートして、このバージョンからAppleScriptに対応しなくなりました。
最新のEvernoteアプリではこの記事の内容は使えなくなりましたが、AppleScript対応機能を残したEvernote Legacyというアプリ(下記リンク)が配布されています。
どうしてもAppleScriptを使いたい場合はこちらを使うといいです。
その際はスクリプト1行目の「Evernote」を「Evernote Legacy」に書き換えてください。
参考記事:Evernoteがv10.0でElectronベースのWebブラウザ的なアプリに – AppleScriptの穴