OneNoteをVBAでいじる - 本文を書き換える - サブルーチン

まず、共通のサブルーチンを標準モジュールに貼り付けてください。
OneNoteには、「書き換え用ページ」を作成し、何かの本文を入力してください。
何かを入れないと、書き換える場所が判断できず、エラーとなります。
下図のようなページにしてください。

Public Sub UpdatePage2(ByVal id As String, ByVal Body As String)
    Dim oneNote As oneNote.Application2
    Dim outXML As String
    Dim lBuf As Long
    Dim cdataStartPos As Long
    Dim cdataEndPos As Long
    Dim headder As String
    Dim footer As String
    
    If id = "" Then
        Exit Sub
    End If
    
    Set oneNote = New oneNote.Application2
    oneNote.GetPageContent id, outXML, piAll, xsCurrent
    
    '本文の開始位置を取得
    cdataStartPos = InStr(outXML, "<one:Outline")
    '本文内のCDATAセクション位置を取得
    cdataStartPos = InStr(cdataStartPos + 1, outXML, "<![CDATA[")
    cdataEndPos = cdataStartPos + 1
    Do
        '本文内のCDATAセクションの終わりの位置を取得
        lBuf = InStr(cdataEndPos + 1, outXML, "]]>")
        If lBuf > 0 Then
            cdataEndPos = lBuf
        Else
            Exit Do
        End If
    Loop
    
    '本文以前のxmlをheadderとして取得
    headder = Left(outXML, cdataStartPos + 8)
    '本文以後のxmlをfooterとして取得
    footer = Right(outXML, Len(outXML) - cdataEndPos + 1)
    
    'headderと書き換える本文とfooterで、今のページを更新
    oneNote.UpdatePageContent headder & Body & footer
End Sub