Office関連

Evernote Cloud SDKを使ったVBAマクロ

3年ほど前にEvernote for Windowsを操作するVBAマクロについて記事を書きました。

先日Evernoteの開発者サイトを眺めていたところ、COMもサポートしている「Evernote Cloud SDK 2.0 for Windows」を見つけたので、さっそくVBAから試してみることにしました。

Evernote Cloud SDKのインストール

VBAマクロからSDKを使ってEvernote APIを呼び出す前に、まずはCOM版のSDKをインストールする必要があります。

  1. Evernote Cloud SDK for Windows」にアクセスします。
  2. COM Setup」から「EvernoteSDK_COMSetup.msi」をダウンロードします。
  3. 手順2.でダウンロードしたインストーラーを実行し、指示に従ってSDKをインストールします。このとき「WindowsによってPCが保護されました」との警告が出て実行がブロックされた場合は、プロパティから「このファイルは他のコンピューターから取得したものです…」の「許可する」チェックをオンにしてください。

Developer Tokenの取得

SDKのインストールが終わったら、次はAPIの呼び出しに必要なDeveloper Tokenを取得します。

  1. Developer Tokens」にアクセスし、Evernoteにログインします。
  2. 画面に表示される「Developer Token」と「NoteStore URL」をメモ帳などにコピーしておきます。

Evernote Cloud SDKを使ったVBAマクロ

Developer Tokenが取得できたら、いよいよSDKを使ってVBAマクロからAPIを呼び出してみます。

※ マクロを実行する前に「参照設定」から「Evernote Cloud SDK for Windows」を追加してください。
※ 下記コード中の「Developer Token」と「NoteStore URL」はそれぞれ自分で取得したものに置き換えてください。

Option Explicit

Public Sub Sample()
'※[Evernote Cloud SDK for Windows]要参照
  Dim enNotebooks As Object ' EvernoteSDK.ENCollection
  Dim i As Long
  Const DeveloperToken As String = "(Developer Token)"
  Const NoteStoreUrl As String = "(NoteStore URL)"
  
  With New EvernoteSDK.ENSessionForCOM
    .SetSharedSessionDeveloperToken DeveloperToken, NoteStoreUrl
    If .sharedSession.IsAuthenticated = False Then Exit Sub
    
    'ノートブック名の列挙
    Set enNotebooks = .sharedSession.ListNotebooksForCOM
    If enNotebooks.Count > 0 Then
      For i = 1 To enNotebooks.Count
        Debug.Print enNotebooks(i).Name
      Next
    End If
  End With
End Sub

問題なくAPIの呼び出しが行われると、下図のようにノートブック名がイミディエイト ウィンドウに表示されます。

SDKをインストールする必要はありますが、この記事で紹介している方法と違って、Evernote for Windowsをインストールする必要はありません。

また、Evernote for Windowsを使う方法はあくまでもローカルに保存されたデータを対象としているため、同期されていないデータに関しては取得することができませんが、今回の方法は、SDKがラッパーとなってEvernote APIの呼び出しが行われるため、取得されるデータは常に最新のものです。

注意点

GitHubにはVBAマクロのサンプルも用意されていますが、私の環境では動きませんでした。

そもそも、サンプルによればSetSharedSessionConsumerKeyメソッドで「Consumer Key」と「Consumer Secret」を指定すれば認証できるはずですが、いろいろ試してみても認証できませんでした。

そのため、上記コードではDeveloper Tokenを使って認証するようにしています。

また、このSDKは参照設定していても下図の通りメンバー表示されません。

SDKの元のソースコードを見て各オブジェクトのプロパティやメソッドを確認することがほぼ必須になるため、COM版のEvernote Cloud SDKを使ったVBAマクロを書く際には“気合が必要”だと思いますので、試してみようという方はその点だけご注意ください。

「Google I/O 報告会 2017 東京」に参加しました。前のページ

Evernote Cloud SDKを使って特定の文字列が含まれるノートを検索するVBAマクロ次のページ

関連記事

  1. Office関連

    図形の結合を行うPowerPoint マクロ(ExecuteMsoメソッド編)

    Excel MVPの伊藤さんのブログで、PowerPointの「図形の…

  2. Office関連

    埋め込んだブックへのユーザー入力を活用する

    「Excel Web Appのブック埋め込みを試してみました。」でEx…

  3. Office アドイン

    Office用アプリ(apps for Office)の概要と開発方法

    当ブログでもカテゴリー:JavaScript API for Offi…

  4. Office アドイン

    Office用アプリではalertやconfirmが使えない?

    JavaScriptでメッセージや確認ダイアログを表示する際には「al…

  5. Office関連

    外部アプリケーションのコンボボックスの内容を取得するVBAマクロのサンプル

    Q&Aサイトに下記質問がありました。(この質問も何となく似たような…

  6. Office関連

    未読アイテムの件数を取得するOutlookマクロ

    「Outlook 未読 件数 マクロ」といったキーワード検索でのアクセ…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP