Excel und OneNote
#1
Hallo zusammen,

wie kann ich aus Excel raus mit VBA eine Notiz in OneNote anlegen mit wählbarem Titel und Text-Inhalt aus Excel-Zellen?

Titel steht im aktuellen Blatt in F6
Notiz-Inhalt steht in B9, C9, C10 und C11

Gruß Ralf

Beispiel-Datei:
.xlsb   OneNote anlegen.xlsb (Größe: 9,01 KB / Downloads: 5)
Antworten Top
#2
Hallo Ralf, 
 
grundsätzlich sollte das funktionieren. Aber nur in der Offline Version. Um zu schauen, was man machbar ist, wäre es sinnvoll die Microsoft OneNote 15.0 Type Library zu aktivieren zu schauen, was die Intellisense und ggf. die MS Hilfe so an Möglichkeiten anbietet. Viel weiterhelfen kann ich nicht, da ich One Note nicht installiert habe.
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Rabe
Antworten Top
#3
Hallo Uwe,
vielen Dank.

Dann muss ich mich mal schlau machen.

Vielleicht weiß noch jemand etwas?

Gruß Ralf
Antworten Top
#4
...da wird es den meisten wohl so gehen wie Uwe. Nicht installiert oder selten genutzt. Ich hab es noch nie genutzt, müsste mich also erst in die Objektbibliothek von OneNote einarbeiten. Aber die KI sagt folgendes (somit ohne Gewähr!):

Mit VBA kannst du über die OneNote COM-API eine neue Seite in OneNote anlegen und Inhalte einfügen. Dazu benötigst du die 
Code:
Microsoft OneNote xx.x Object Library

 (Referenz über Extras → Verweise in VBA setzen).
Beispielcode: Notiz in OneNote aus Excel-Zellen erstellen

Code:
' Sprache: VBA (Excel)
Sub CreateOneNoteNote()
    ' Variablen für OneNote-Objekte
    Dim oneNoteApp As OneNote.Application
    Dim notebookXML As String
    Dim sectionID As String
    Dim pageID As String
    Dim pageTitle As String
    Dim pageContent As String
   
    ' Zellwerte als Titel und Inhalt verwenden
    pageTitle = ThisWorkbook.Sheets("Tabelle1").Range("A1").Value
    pageContent = ThisWorkbook.Sheets("Tabelle1").Range("B1").Value
    ' OneNote-Objekt initialisieren
    Set oneNoteApp = New OneNote.Application
    ' Erste Notizbuch-Sektion suchen (kann angepasst werden)
    oneNoteApp.GetHierarchy "", hsSections, notebookXML
    ' Hier wird die erste Sektion verwendet
    sectionID = GetFirstSectionID(notebookXML)
    ' Neue Seite erstellen
    oneNoteApp.CreateNewPage sectionID, pageID, npsDefault
    ' Inhalt als XML hinzufügen (OneNote erwartet XML)
    Dim pageXML As String
    pageXML = "<one:Page xmlns:one='http://schemas.microsoft.com/office/onenote/2013/onenote'>" & _
              "<one:Title><one:Text>" & pageTitle & "</one:Text></one:Title>" & _
              "<one:Outline><one:OEChildren><one:OE><one:T>" & _
              "<![CDATA[" & pageContent & "]]>" & _
              "</one:T></one:OE></one:OEChildren></one:Outline></one:Page>"
    oneNoteApp.UpdatePageContent pageXML
    MsgBox "Notiz erfolgreich in OneNote erstellt!", vbInformation
End Sub
' Hilfsfunktion: erste Sektion ID aus XML auslesen
Function GetFirstSectionID(xml As String) As String
    Dim xmlDoc As Object
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.LoadXML xml
   
    Dim sectionNode As Object
    Set sectionNode = xmlDoc.SelectSingleNode("//one:Section")
    If Not sectionNode Is Nothing Then
        GetFirstSectionID = sectionNode.Attributes.getNamedItem("ID").Text
    Else
        MsgBox "Keine Sektion gefunden!"
        GetFirstSectionID = ""
    End If
End Function

Hinweise und Anpassungen:
Verweise setzen: In VBA unter Extras → Verweise → Microsoft OneNote 15.0/16.0 Object Library aktivieren.
Zellen anpassen: In diesem Beispiel wird A1 für Titel und B1 für Inhalt genutzt. Du kannst beliebige Zellbereiche verwenden.
Sektion auswählen: Standardmäßig wird hier die erste Sektion gewählt. Du kannst GetFirstSectionID anpassen, um eine bestimmte Sektion anhand des Namens zu finden.
XML-Formatierung: OneNote benötigt Inhalt im OneNote XML-Format; einfache Texte kann man mit einfügen.
Fehlerbehandlung: In produktivem Einsatz solltest du prüfen, ob OneNote geöffnet ist und ob die Sektion gefunden wird.
Nutzung:
Öffne die Excel-Datei.
Trage in A1 den gewünschten Titel ein, in B1 den Inhalt der Notiz.
Führe das Makro CreateOneNoteNote aus.
Die Notiz erscheint in der ersten Sektion deines Standard-OneNote-Notizbuchs.
Mit diesem Ansatz lassen sich beliebige Inhalte aus Excel automatisiert in OneNote übertragen.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste