如何突出Microsoft OneNote 2013中的语法?

时间:2016-01-21 16:33:30

标签: vba onenote onenote-api

我想在Microsoft OneNote 2013中使用宏或脚本突出显示我选择的编程语言(专有)的语法。我找到了MS OneNote' 13的免费宏创建器,它允许创建名为" OneTastic"的自定义宏。我创建了一个宏,给出了两个数组,其中包含与不同颜色相关联的预定义单词列表,以给出每个列表(例如:列表1个单词=蓝色,列表2个单词=橙色等)

API: https://www.omeratay.com/onetastic/docs/

问题:搜索逻辑是在更大的单词中查找单词,例如" IN"在" doma " (DOMA IN 的)。我的代码如下:

<?xml version="1.0" encoding="utf-16"?>
<Macro name="CCL TEST 3" category="Color" description="" version="10">
  <ModifyVar name="KEYWORDS1" op="set">
    <Function name="String_Split">
      <Param name="string" value="drop create program go %i declare call set end END execute else elseif protect constant curqual of subroutine to noconstant record free range in is protect define macro endmacro" />
      <Param name="delimiter" value=" " />
    </Function>
  </ModifyVar>
  <ModifyVar name="counter" op="set" value="0" />
  <WhileVar name="counter" op="lt">
    <Function name="Array_Length">
      <Param name="array" var="KEYWORDS1" />
    </Function>
    <IsRootOp />
    <ModifyVar name="keyword" op="set" var="KEYWORDS1">
      <RightIndex var="counter" />
    </ModifyVar>
    <For each="Text">
      <That hasProp="value" op="eq" var="keyword" />
      <ModifyProp name="fontColor" op="set" value="blue" />
    </For>
    <ModifyVar name="counter" op="add" value="1" />
  </WhileVar>
  <ModifyVar name="KEYWORDS2" op="set">
    <Function name="String_Split">
      <Param name="string" value="datetimefind datetimediff cnvtdatetime cnvtalias format build concat findfile error alterlist alter initrec cnvtdate esmError echo max min avg sum count uar_get_code_meaning mod substring size trim hour day isnumeric expand locateval cnvtstring fillstring btestfindstring logical uar_get_code_display uar_get_meaning_by_codeset UAR_GET_CODE_BY sqltype cnvtreal echorecord cnvtupper cnvtlower cnvtdatetimeutc abs datetimediff year julian btest decode evaluate findstring asis replace validate nullterm parser value uar_timer_create uar_CreatePropList uar_SetPropString uar_CloseHandle uar_Timer_Destroy uar_Timer_Stop build2 patstring piece cnvtalphanum timestampdiff" />
      <Param name="delimiter" value=" " />
    </Function>
  </ModifyVar>
  <ModifyVar name="counter2" op="set" value="0" />
  <WhileVar name="counter2" op="lt">
    <Function name="Array_Length">
      <Param name="array" var="KEYWORDS2" />
    </Function>
    <IsRootOp />
    <ModifyVar name="keyword" op="set" var="KEYWORDS2">
      <RightIndex var="counter2" />
    </ModifyVar>
    <For each="Text">
      <That hasProp="value" op="eq" var="keyword" />
      <ModifyProp name="fontColor" op="set" value="orange" />
    </For>
    <ModifyVar name="counter2" op="add" value="1" />
  </WhileVar>
</Macro>

OneTastic Syntax Highlighter Script

2 个答案:

答案 0 :(得分:0)

OneNote中没有可用的内置功能,但是您可以做到。

使用Visual Studio Code是免费的。打开正确的文本复制/粘贴。用VS代码编写代码。复制它。它将完全按照您所看到的进行粘贴。颜色和全部。

答案 1 :(得分:0)

虽然它不使用VBA,但我喜欢并喜欢插件NoteHightlight2016

如果找不到语言,可以尝试添加自己的语言。我已经将Excel Formula关键字添加到支持的语言中,并且我相信它比在OneTastic中创建要容易一些,我也使用并喜欢它。

相关问题