今回は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
この記事へのコメントはありません。