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マクロを書く際には“気合が必要”だと思いますので、試してみようという方はその点だけご注意ください。

関連記事

  1. Office関連

    Office 365 APIをVBAから呼び出す(1)

    2015年4月に公開されたOffice Teamのブログ記事「Toda…

  2. Office関連

    VBAでインターネット上のファイルをダウンロードする方法をまとめてみました。

    「VBA ファイル ダウンロード」といったキーワード検索でのアクセスが…

  3. Office関連

    「2014年12月のWindows Update以降コマンドボタンが使えなくなった」トラブルへのFi…

    当ブログでも「KB2553154の更新プログラムをアンインストールする…

  4. Windows 10

    【2017年1月版】Microsoft Edgeを操作するVBAマクロ(DOM編)(2)

    昨日の記事で、Microsoft Edgeを操作するVBAコードを改め…

  5. Windows 10

    Microsoft Edgeを操作するVBAマクロ(DOM編)

    2017/1/31 追記:一部コードを修正した記事を公開しました。…

  6. Office関連

    段落内改行を一括置換するOutlookマクロ

    「段落内改行 置換 Outlook マクロ」といったキーワードでのアク…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP