Office関連

OneNoteのノート名を列挙するマクロ

今回はOneNoteのノート名を列挙するマクロを紹介します。

Option Explicit

Public Sub Sample()
'OneNoteのノート名を列挙する

'GetHierarchyメソッドの第2引数:hsScopeで指定する値は下記の通り
'  hsSelf:0
'  hsChildren:1
'  hsNotebooks:2
'  hsSections:3
'  hsPages:4

  Dim x As String
  Dim elm As Object
  
  CreateObject("OneNote.Application").GetHierarchy vbNullString, 2, x
  With CreateObject("Msxml2.DOMDocument")
    .async = False
    If .LoadXML(x) Then
      For Each elm In .SelectNodes("/one:Notebooks/one:Notebook")
        Debug.Print elm.getAttribute("name")
      Next
    End If
  End With
End Sub

最初はApplicationオブジェクト > Notebooksオブジェクト > Notebookオブジェクト、のような形になっているのかと思っていましたが、実際は違っていました。
ノートやセクションの情報を得るには、GetHierarchyメソッドで階層構造をXMLとして取得し、ノードを列挙していけば良いようです。

・Office 2010 の開発者のための新機能 – OneNote 2010
http://msdn.microsoft.com/ja-jp/library/ff955606.aspx#odc_office14_ta_WhatsNewforOffice2010Developers_OneNote2010

関連記事

  1. Office関連

    VBAで○○を禁止したい!・・・と思う前に。

    Office系Q&Aサイトを見ているとたまに出てくるのがこの質問。…

  2. Office関連

    文字列を横方向に移動するWordマクロ(WordBasic編)

    いつもお世話になっているWord MVPの新田さんが、まるでカニの動き…

  3. Office アドイン

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

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

  4. Office アドイン

    Office 2016で進化したOffice アドイン

    今日OfficeDevを眺めていて気が付いたのが「OfficeJS S…

コメント

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

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP