今回は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


















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