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. Word

    リボンからプリンタを選択して簡単に印刷できるようにする(Word)

    今回はdynamicMenu要素のgetContent属性のコールバッ…

  2. Office関連

    Visual Studio Community 2015でOffice開発する。

    「Microsoft、統合開発環境「Visual Studio 201…

  3. Excel

    Excel REST APIをVBAから呼び出す方法

    「Microsoft GraphをVBAから呼び出してOneNoteの…

  4. Office関連

    PDFを分割するVBAマクロ

    「VBA PDF 分割」といったキーワード検索でのアクセスがありました…

  5. Office アドイン

    [Office用アプリ]選択範囲変更時のイベントを利用する。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  6. Office関連

    選択中の図形の書式設定を一括変更するPowerPointマクロ

    PowerPointで複数の図形の書式を一つずつ変更するのが面倒だった…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

最近の記事

アーカイブ

PAGE TOP