AppleScriptでEvernoteを操作する 第十六回

前回は、あらかじめ作成しておいた選択肢から、ユーザーにノートブックを選んでもらうようにしました。

これはこれで便利なのですが、ときには存在するすべてのノートブックから選んでもらいたい場合もあるでしょう。その際、いちいちすべてのノートブック名を入力しておくのは不便ですし、そもそも大抵はどんなノートブックが入っているのかわからないので、これまでのやり方がまったく使えないこともあります。

どうすればいいのでしょうか。

狙いとコード

今回やることは簡単です。

全ノートブックのリストを表示し、そこからユーザーに選択してもらう。コードは以下のように書けます。

tell application "Evernote"
	set nlist to name of notebooks
	set selectNotebookName to choose from list nlist
	
	repeat with t in notebooks
		if (name of t) as text = (selectNotebookName) as text then
			set selectNotebook to t
			exit repaet
		end if
	end repeat
	
end tell

tell application “Evernote”ブロックの中では、notebooksはEvernoteのノートブックの情報を持っています。それを参照すればよいわけですが、ここではそのうちのnameプロパティにアクセスしています。

2行目のコードは、簡単に言えば、nlistという変数に、全ノートブックの名前を入れてね、という命令です。

そして3行目で、そのリストからユーザーに選択してもらうダイアログを表示し、その結果をselectNotebookNameに保存します。

これで一件落着かというと、selectNotebookNameに入っているのはあくまで「ノートブックの名前」であって、ノートブックそのものの情報ではありません。ノートブックに対して何らかの操作を行う場合は、むしろその情報が必要となります。

そこで、selectNotebookNameに入っているノートブックの名前から、そのノートブックの情報を探します。他にもいろいろやり方はあるかと思いますが、ここで行っているのは、notebooksの中から一つひとつ要素(ノートブック情報)を取り出し、そのnamaと、selectNotebookNameを比較して、それが同じであれば、その取り出したノートブック(の情報)をselectNotebookに格納する、というものです。

イメージ的に言うならば、左手に商品名が書かれたラベルを持ち、箱の中から一つひとつ商品を取り出していって、ラベルと同じ商品名のものがあればそれを別の箱に入れて確保する、というようなことです。

ちなみに、もし適合するものがあれば、以降の比較作業は必要なくなるので、exit repaet によって繰り返しを抜けるようにしてあります。

前回の話と絡めれば、指定したノートブックから検索したい場合は、単にselectNotebookNameの情報を利用して、find notes コマンドを使えばOKです。選択したノートブックに対して操作する場合は、selectNotebookを使いましょう。

Next Step

これで、新規ノートの作成、ノート情報の取得、ノートの検索、ノートブック情報の扱いまでができるようになりました。省力化に関しては、これでかなりの部分がカバーできるでしょう。

次回は、ノートの中身情報の扱いについて見ていきます。

▼こんな一冊も:

Evernote豆技50選 (Espresso Books)
倉下忠憲 (2015-03-29)
売り上げランキング: 202
ズボラな僕がEvernoteで情報の片付け達人になった理由
倉下 忠憲
シーアンドアール研究所 (2016-02-26)
売り上げランキング: 210,843
Related Posts with Thumbnails
Send to Kindle
Rashita
物書きをやっております。実用書から小説までなんでもござれのハイブリッド物書きです。 ライフハックや仕事術、知的生産などに興味があります。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です