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関連

    Presentation Translatorが公開されました。

    下記記事で紹介している「Microsoft Translator アド…

  2. アイコン一覧

    Office 365アイコン(imageMso)一覧(X,Y,Z)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  3. Office関連

    Word 2013のアクセス キー一覧[PDF]

    前回の記事でWord 2013のアクセス キーをまとめたものを公開しま…

  4. アイコン一覧

    Office 365アイコン(imageMso)一覧(V)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  5. Office関連

    「印刷の向き」の変更を検知するExcelマクロ

    MSDNフォーラムに「「印刷の向き」の「縦」「横」ボタンがクリックされ…

  6. Office関連

    【2018年9月版】Microsoft Office関連の公式リンクまとめ

    Ignite 2018やOffice 2019のリリースがあり、Off…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP