OneNoteをVBAでいじる - すべてのページの名前を取得
下記のコードを、標準モジュールに貼り付けてください。
イミディエイトウィンドウで
AllPageNameToImmediate(GetNoteBookID("あなたのノートブックの名前")) [Return]
で、番号:ページ名 の書式で全てページ名が出力されます。
Public Sub AllPageNameToImmediate(ByVal noteBookID As String)
Dim oneNoteApp As oneNote.Application
Dim oneNotePagesXml As String
Dim doc As Object
Dim nodes As MSXML2.IXMLDOMNodeList
Dim node As MSXML2.IXMLDOMNode
Dim pageName As String
Dim pageXml As String
Dim cnt As Long
Set oneNoteApp = New oneNote.Application
oneNoteApp.GetHierarchy noteBookID, hsPages, oneNotePagesXml
Set doc = CreateObject("Msxml2.DOMDocument")
Call doc.loadXML(oneNotePagesXml)
Set nodes = doc.DocumentElement.SelectNodes("//one:Page")
'Debug.Print oneNotePagesXml
MsgBox "nodes.length =" & nodes.Length
cnt = 0
For Each node In nodes
DoEvents: DoEvents
pageName = node.Attributes.getNamedItem("name").Text
cnt = cnt + 1
Debug.Print cnt & ":" & pageName
Next
End Sub