LibreOffice 宏

API 网站:https://api.libreoffice.org/
教程网站:https://www.pitonyak.org/book/

下面的宏可以在 LibreOffice 中实现文档着色:

' 功能:给选中的文本统一字体,添加灰色段落背景
Sub A01_CodeBlockdim document   as objectdim dispatcher as objectdocument   = ThisComponent.CurrentController.Framedispatcher = createUnoService("com.sun.star.frame.DispatchHelper")rem ----------------------------------------------------------------------dim args0(0) as new com.sun.star.beans.PropertyValuedim args1(1) as new com.sun.star.beans.PropertyValuedim args2(2) as new com.sun.star.beans.PropertyValuedim args4(4) as new com.sun.star.beans.PropertyValuerem ----------------------------------------------------------------------args4(0).Name = "CharFontName.StyleName"args4(0).Value = ""args4(1).Name = "CharFontName.Pitch"args4(1).Value = 2args4(2).Name = "CharFontName.CharSet"args4(2).Value = 0args4(3).Name = "CharFontName.Family"args4(3).Value = 0args4(4).Name = "CharFontName.FamilyName"args4(4).Value = "AR PL UKai CN"dispatcher.executeDispatch(document, ".uno:CharFontName", "", 0, args4())rem ----------------------------------------------------------------------args2(0).Name = "FontHeight.Height"args2(0).Value = 12args2(1).Name = "FontHeight.Prop"args2(1).Value = 100args2(2).Name = "FontHeight.Diff"args2(2).Value = 0dispatcher.executeDispatch(document, ".uno:FontHeight", "", 0, args2())rem ----------------------------------------------------------------------args0(0).Name = "BackColor"args0(0).Value = -1dispatcher.executeDispatch(document, ".uno:BackColor", "", 0, args0())rem ----------------------------------------------------------------------args0(0).Name = "BackgroundColor"args0(0).Value = &HEEEEEEdispatcher.executeDispatch(document, ".uno:BackgroundColor", "", 0, args0())rem ----------------------------------------------------------------------args4(0).Name = "TopBottomMargin.TopMargin"args4(0).Value = 0args4(1).Name = "TopBottomMargin.BottomMargin"args4(1).Value = 0args4(2).Name = "TopBottomMargin.ContextMargin"args4(2).Value = falseargs4(3).Name = "TopBottomMargin.TopRelMargin"args4(3).Value = 100args4(4).Name = "TopBottomMargin.BottomRelMargin"args4(4).Value = 100dispatcher.executeDispatch(document, ".uno:TopBottomMargin", "", 0, args4())rem ----------------------------------------------------------------------args1(0).Name = "LineSpacing.Mode"args1(0).Value = 0args1(1).Name = "LineSpacing.Height"args1(1).Value = 100dispatcher.executeDispatch(document, ".uno:LineSpacing", "", 0, args1())
End Sub' 功能:给文档中的拼音 [*] 和注释 {*} 添加颜色。
'    可用类似的方法实现代码着色。
Sub A02_PinYinHighlightDim aReplaceArgs(0) as new com.sun.star.beans.PropertyValue' 恢复全文默认颜色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &H000000ReplaceString(ThisComponent, ".+", "$0", aReplaceArgs)' 中括号中的拼音设置为蓝色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &H3465A4ReplaceString(ThisComponent, "\[.+?\]", "$0", aReplaceArgs)' 花括号中的注释设置为红色aReplaceArgs(0).Name = "CharColor"aReplaceArgs(0).Value = &HFF0000ReplaceString(ThisComponent, "\{.+?\}", "$0", aReplaceArgs)
End Sub' 功能:删除行尾空白
Sub A03_ClearTailingSpaceReplaceString(ThisComponent, "[ \t]+$", "", Nothing)
End Sub' 功能:Tab 转空格
Sub A04_Tab2SpaceReplaceString(ThisComponent, "\t", "    ", Nothing)
End Sub' 功能:在 oContainer 中搜索 sSearchString,并替换为 sReplaceString,
'    同时指定替换时的属性 aReplaceArgs,支持正则表达式
' 示例:将文档中的 a 替换为红色加粗的 b
' ------------------------------
' 创建一个属性数组,包含两个元素
' Dim aReplaceArgs(1) as new com.sun.star.beans.PropertyValue
' 属性名为 CharColor,属性值为 &HFF0000
' aReplaceArgs(0).Name = "CharColor"
' aReplaceArgs(0).Value = &HFF0000
' 属性名为 CharWeight,属性值为 BOLD,即 150.0
' aReplaceArgs(1).Name = "CharWeight"
' aReplaceArgs(1).Value = com.sun.star.awt.FontWeight.BOLD
' 执行替换操作,替换范围为整个文档
' ReplaceString(ThisComponent, "a", "b", aReplaceArgs)
' ------------------------------
Sub ReplaceString(oContainer as Object, sSearchString, sReplaceString as String, aReplaceArgs as Object)oReplaceDesc = oContainer.createReplaceDescriptor()oReplaceDesc.SearchCaseSensitive = TrueoReplaceDesc.SearchRegularExpression = TrueoReplaceDesc.Searchstring = sSearchStringoReplaceDesc.ReplaceString = sReplaceStringif not (aReplaceArgs is Nothing) thenoReplaceDesc.setReplaceAttributes(aReplaceArgs)end ifoReplCount = oContainer.ReplaceAll(oReplaceDesc)
End Sub' 功能:列出对象拥有的所有属性
' 示例:列出 ThisComponent 的所有属性
' ------------------------------
' ListProperties(ThisComponent)
' ------------------------------
' 示例:列出光标处文本的所有属性
' ------------------------------
' oCursor = ThisComponent.currentController.getViewCursor()
' ListProperties(oCursor)
' ------------------------------
Sub ListProperties(oObject as Object)aProperties = oObject.getPropertySetInfo().getProperties()Dim sResult as StringFor Index = lbound(aProperties) to ubound(aProperties)sResult = sResult + Chr(10) + oObject.getPropertySetInfo().getProperties()(Index).NameNextmsgbox(sResult)
End Sub

LibreOffice 宏相关推荐

  1. libreoffice python_如何在LibreOffice中运行python宏?

    问题描述 当我去工具 – >宏 – >组织宏 – > Python我得到这个对话框: 无法创建新的Python宏. 显然LibreOffice没有Python编辑器,因此我必须在其他 ...

  2. 字扩展,位扩展,和字位扩展_6个有用的LibreOffice扩展

    字扩展,位扩展,和字位扩展 LibreOffice是周围最好的免费办公套件,因此,所有主要的Linux发行版都采用了LibreOffice. 尽管LibreOffice已经包含了功能,但是可以使用称为 ...

  3. LibreOffice 中的六大实用扩展组件

    LibreOffice 中的六大实用扩展组件 图片来源:Opensource.com LibreOffice 是最好的自由办公套件,并在所有的主要 Linux 发行版中得到应用.尽管 LibreOff ...

  4. 在LibreOffice 中启用录制宏的功能

    LibreOffice 提供一些VBA的支持.但是默认情况下,并没有录制宏的功能.这对于习惯了MS Office的童鞋们是一件很不爽的事情. 今天终于找到了打开这个功能的方法(LibreOffice ...

  5. libreoffice python_如何从python脚本调用现有LibreOffice python宏

    最后,我有一个可行的解决方案.叮!东!在#!/usr/bin/python3 # -*- coding: utf-8 -*- ## # a python script to run a libreof ...

  6. libreoffice python_从python运行Libreoffice BASIC宏

    我的首选方法是将python脚本放在LibreOffice user directory的Scripts/python子文件夹中.然后在底部添加此函数:def call_basic_macro(): ...

  7. LibreOffice、OpenOffice 漏洞可导致黑客欺骗已签名文档

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 LibreOffice 和 OpenOffice 推出更新,修复了一个漏洞,它可导致攻击者操纵看似由可信来源签名的文档. 尽管该漏洞被评级为中危 ...

  8. excel启用宏在哪里_Excel 2010在不启用的情况下运行宏

    excel启用宏在哪里 In the old days, if you opened a file that contained macros, a warning message popped up ...

  9. 试用LibreOffice对VBA的支持

    安装了Win7后,要打个表格又要用到Office,没有装MS Office,把Office 2007装上试用,不习惯.WPS2005以后虽然不错,但那个自动后台占用网络资源感觉不好.想到以后要将公司软 ...

  10. Java开发中OnlyOffice、OpenOffice和LibreOffice怎么选?

    我把官网贴在下面如果大家有好的使用方法可以分享下. onlyoffice官网:https://www.onlyoffice.com/ Api官方地址(英文):https://api.onlyoffic ...

最新文章

  1. 浅谈SD-WAN未来的发展方向
  2. Python3经典100道练习题003
  3. java asm tree_使用ASM 4处理Java类文件–第二部分:Tree API
  4. 在页游中LUA的应用(1)
  5. Azure运维系列 4:安装和使用Azure PowerShell管理云
  6. LeetCode 1561. 你可以获得的最大硬币数目
  7. 在未来人类在计算机行业中扮演什么角色,刘慈欣:未来人类可能生活在计算机里...
  8. Linux查看非root流程执行
  9. Acer4552G双硬盘
  10. 环洋市场调研-2021年全球Camlock联轴器行业调研及趋势分析报告
  11. 神经网络与误差反向传播算法
  12. (13)TranslateMessage函数
  13. warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
  14. 论文《Avoiding Inference Heuristics in Few-shot Prompt-based Finetuning》学习笔记
  15. 比较 React Native 与 Vue 和 Capacitor
  16. MMR: 控制推荐多样性算法
  17. 谷歌、亚马逊、IBM和微软的云计算平台
  18. 高中数学40分怎么办_高中数学成绩一直在40分左右,怎样提升?高中数学补习怎么补?...
  19. 宏观经济研究:全国各省、地级市-社会融资规模增量数据(包含总额及8类明细)2013-2021年
  20. html 点击下载图片

热门文章

  1. Unity2D入门(二):图层layer和角色建立
  2. python 二值化细化_Python - 图像的细化(骨架抽取)
  3. 1168: PIPI的方格
  4. matplotlib如何绘制网格线
  5. 网易博客搬家至CSDN博客指南
  6. 雅虎谷歌恩怨回顾:养虎为患自食苦果
  7. 麦子学院项目-懒人天气App思维导图、素材下载
  8. PHP学习之字符串操作
  9. 神舟微型计算机hfmpbvx2,siRNA沉默HIF-1α基因联合经导管动脉栓塞术对兔VX2肝癌模型疗效及微循环的影响...
  10. c语言倒直角梯形,请问一下大佬们这段代码问题在哪里?