onenote
808 TopicsOneNote - Inserting Code Blocks
Are there any plans for a way to format code blocks in OneNote without inserting a 1 column/row table or an ugly print out? The most relevant Google search brings up a post from 2018 where the top answer says its been requested on UserVoice and directs OP there, but 3 years later, still no code block formatting options and Microsoft isn't using UserVoice anymore so I don't where else I can submit feature requests besides this discussion board. Thanks!365KViews25likes28CommentsOneNote To Do tag changed to a radio button
After a recent update, the to-do tag still behaves like a checkbox but is styled as a radio control:. Here's why I say that. Some UI differences between radio and checkbox are: - Circle outlines convey a radio button control, and selection fills in most/all of the outline - Square outlines convey a checkbox control, and selection usually does not fill in the entire outline Radio controls are mutually exclusive by design (selecting one de-selects the others). They are not appropriate for a to-do list. I can get close to the original UI by customizing the tag, but not entirely: Is this bothering anyone else as much as me?158Views0likes2CommentsOneNote Interop API targets wrong window instance
C# with .NET Framework 4.8, Microsoft OneNote Open up two OneNote windows viewing the same page. From the second window, invoke an add-in command that uses the managed Interop API. Any queries or updates made by the API will target the first OneNote window instance, even while the second window instance is active and has focus. However, if the content of the page is manually modified from the second [active] window instance, then and only then will the API call target and update the page in the second window. Expectation is that the updated content will be visible immediately in the active OneNote window instance122Views0likes4CommentsOneNote Interop API UpdatePageContent changes lastModifiedTime of unmodified child elements
Using the Interop API, IApplication.UpdatePageContent(xml, lastModTime, XMLSchema.xs2013, true) Given a page with one Outline and two OE paragraphs where each OE paragraph was contributed by different authors on different dates. If any change is made to the Outline, such as appending a new OE, without modifying the existing OEs, then when the page is saved using UpdatePageContent, the lastModifiedTime attribute of all descendants of that Outline are updated to the current time. This results in losing information regarding when a particular author applied their changes. The expectation is that the EditedByAttributes (per 0336.OneNoteApplication_2013.xsd) of an OE should be preserved unless that OE's content has changed. Users who share notebooks often rely on the EditedByAttributes (who and when) for individual parts of a page to track independent changes. The current behavior loses that auditing capability. Note that this usage is based on https://learn.microsoft.com/en-us/office/client-developer/onenote/application-interface-onenote#updatepagecontent-method which explains: You must include page-level objects in the UpdatePageContent call The dateExpectedLastModified is nothing more than a pessimistic locking type of safe-guard and is not considered in any regard in relation to the lastModifiedTime attribute121Views0likes2CommentsOneNote Interop API UpdatePageContent breaks Spell Checking
Using the interop API, IApplication.UpdatePageContent(xml, lastModTime, XMLSchema.xs2013, true) Given a page with an OE paragraph, where the user selects a run of text, not including the end of the text, and the text contains spelling errors before, within, and after the selection range. When the proofing language is changed for the selected range, then the spelling errors after that range will no longer be highlighted as errors. Here is an example text run, before modification, with a selection range. Notice the word "benoyd" is misspelled and would be highlighted by OneNote. <one:OE alignment="left" quickStyleIndex="1" selected="partial"> <one:T><![CDATA[To ]]></one:T> <one:T selected="all"><![CDATA[infinity]]></one:T> <one:T><![CDATA[ and benoyd...]]></one:T> </one:OE> And after modification to change the language of the selected range: <one:OE alignment="left" quickStyleIndex="1"> <one:T><![CDATA[<span lang=en-US>To </span><span lang=yo>infinity</span><span lang=en-US> and benoyd...</span>]]></one:T> </one:OE> But the word "benoyd" is no longer highlighted as misspelled. The user can manually iterate through the text by interactively clicking the Review/Spelling button, causing OneNote to highlight the misspellings. Alternatively, if the user changes the proofing language of the selected range interactively using the Proofing Language panel, it results in exactly the same XML structure generated by OneNote natively, but OneNote retains the misspelling indicators. Making exactly the same changes to the XML using the UpdatePageContent API should result in the same behavior as using the UI.87Views0likes2CommentsWhat's New in Microsoft EDU - Back to School 2026 webinar
Get ready for back to school (Northern Hemisphere) with the latest product updates from Microsoft Education. In this webinar, we’ll showcase new AI-powered tools, teaching resources, and product updates designed to help educators save time, personalize learning, and support every student. You’ll see what’s new across Microsoft 365 Copilot, Teams for Education, OneNote, and more, including: ✅ Teach module in Microsoft 365 Copilot ✅ Copilot Notebooks ✅ Study and Learn agent ✅ Learning Zone ✅ Teams for EDU updates ✅ The latest OneNote EDU updates And more! Join us for practical demonstrations, helpful tips, and new ideas you can put to work as you prepare for a successful school year. And don't worry if you can't make it live, we will be recorded and posting this on the Microsoft Education YouTube channel afterwards. 📅 When: Wednesday, August 26th @ 8am Pacific Time 🔗 Register here: https://df.events.teams.microsoft.com/event/df.8c4f06fc-399f-4603-8023-f5fd92601bd1@72f988bf-86f1-41af-91ab-2d7cd011db47?source=copyLinkOneEventsShareDialog Mike Tholfsen Group Product Manager Microsoft Education430Views1like1CommentFeature Request: Add Support for Merged Table Cells in OneNote Interop API XML Schema
I'm writing to request an enhancement to the OneNote Interop API — specifically, the ability to support merged table cells in the XML schema used by the UpdatePageContent method. With the recent addition of cell merging in OneNote for Microsoft 365, this feature has become essential for creating more flexible and visually organized tables. However, the current Interop API does not reflect this capability, and there is no documented support for attributes like colspan or rowspan in the XML schema. Why this matters: Developers cannot programmatically replicate merged cells created in the OneNote UI. I am the author of the OneMore add-in (github.com/stevencohn/OneMore). Automation and content generation tools are limited in their ability to produce rich, structured layouts. Imported tables with merged cells are automatically flattened, leading to data loss or formatting issues. Suggested enhancement: Extend the OneNote XML schema to include support for merged cells, possibly via new attributes or nested structures within <TD> elements. Update the documentation and SDK to reflect these changes and provide examples. This feature would greatly improve the fidelity of programmatic content creation and align the API with the capabilities of the OneNote client. Thank you for considering this request. I’d be happy to provide use cases or collaborate on testing if needed.98Views0likes4CommentsOneNote Interop API NavigateToUrl fails if called again too quickly
Using the Interop API, IApplication.NavigateToUrl(pageURL) Invoke once with a valid page URL, it succeeds Invoke again (within about two seconds) with a different valid page URL, it fails with COMException, HResult: 0x80042014 "The object does not exist" However, if you wait at least about three seconds in between calls, then it will always succeed. It doesn't matter whether the second page is in the same notebook or a different notebook. All notebooks tested here are synced to the cloud. It appears that NavigateToUrl causes the notebook to sync, because the OneNote notebook panel shows the sync glyph on top of the notebook icon and that is perhaps blocking subsequent interop APIs until completed? The IApplication instance is instantiated and disposed in a "using" block for each call30Views0likes0Comments