【问题标题】:OneNote: Move screen/cursor to top of every single page in notebookOneNote:将屏幕/光标移动到笔记本每一页的顶部
【发布时间】:2017-06-22 08:52:36
【问题描述】:

我有一系列 OneNote 2010 笔记本,每个笔记本都有数百页,跨多个部分和部分组,用作课堂参与者工作簿。编辑页面的内容会使显示(光标/屏幕/插入点;不确定如何定义)以最后一次编辑为中心。

(这类似于 Excel 在重新打开电子表格时记住您的光标位置,而 Word、PowerPoint 和其他人总是在最顶部打开您的文档。)

当参与者或协助者打开他们的笔记本时,每个页面都会随机显示,因为 OneNote 在最后一个编辑位置打开它。这应该看起来干净、专业且有条理。

无论组织结构如何,如何遍历 OneNote 笔记本中的每一页,并执行相当于 CTRL-HOME CTRL-HOME 的操作? (第二个是为了好运。:-)

(奇怪的是,似乎没有其他人问过这个问题。我找不到任何 UI 方式来做到这一点。可能有一种手动编辑 XML 的方式,但这超出了我的范围。我很熟悉使用VBA,但是关键字和语法依赖IDE,并且不了解OneNote对象模型。所以最好把我当成一个脚本小子。)

谢谢!

【问题讨论】:

    标签: vba onenote


    【解决方案1】:

    不知道 4 个月是否算作一个老问题,但 Autohotkey 应该能够做,如果不是全部,那么大部分。我可以想到一种简单的方法,如果这些部分的页数相似,这种方法效果最好。在新的 .ahk 脚本中:

    ; This script assumes you are starting at the first notebook you want to
    ; change, and the first loop is the number of notebooks to change
    ; (the notebooks are all in order)
    
    ; related to ahk internals.
    #sendmode, input
    ; Trigger the script with ctrl + winkey + t
    ^#t::
        ; Loop enough times for each notebook
        loop, 10
        {
            ; loop enough times to get through all the sections in the book
            loop, 20
            {
                send !{home} ; alt home, go to first page in section.
                ; internal loop, enough times to get through all the pages 
                ; in the biggest section
                loop, 50
                {
                    send ^{home} ; ctrl home. Cursor to start of page
                    send ^{pgdn} ; ctrl pgdown. Next page.
                }
                send ^{tab} ; ctrl tab. Next section.
            }
            ;Shortcuts to open next notebook
            send ^G
            send {down}
            send {return}
        }
    return
    

    此脚本可能不会自动通过笔记本,因为 onenote 阻止外部向上/向下命令。否则应该没问题。我没有测试过。

    【讨论】:

    • 太棒了,谢谢!尽管眼前的需求已经过去,但无论如何都值得测试一下。我相信它会再次出现。我非常专注于 VBA,甚至没有考虑过 AHK。 (这很奇怪,因为我认为这是有史以来最好的事情之一。)将测试并看看我想出什么。
    • 好了,终于测试了。基本思路看起来不错。我需要弄清楚一些事情:(1)它不会打开部分组(因此它会一直循环遍历未分组的部分,直到完成并忽略部分组)。 (2) 最后接触的部分是活动部分,因此当读者打开该部分时,他们位于最后一页的顶部,而不是第一页。除此之外,它似乎工作 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多