DsoFramer 主要是通过 activeDocument 获取活动文档并操作文档对象。 Word 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/word.document Excel 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/excel.workbook PowerPoint 文档对象请参考:
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation说明
DsoFramer 是微软免费开源的控件,
用于嵌入 Word、 Excel、 PPT 等 Office 文档,兼容 WPS。
要求不高还是挺不错的,而且此扩展库已实现免注册调用,
不需要注册控件,而且可以生成独立EXE文件,
当然 DsoFramer 本身并不完美,
如果有更高的要求,这是开源控件请自行改进,
本人不对此控件提供技术支持
参数是窗体或控件对象
comDsoFramerObject.BeforeDocumentClosed = function(){
/*当文档关闭前触发*/
}
插入文件到当前位置,
如果文件是图像,请将参数@2指定为true
插入文件到头部,
如果文件是图像,请将参数@2指定为true
插入文件到尾部,
如果文件是图像,请将参数@2指定为true
comDsoFramerObject.OnDocActivated = function(isActivated){
/*当组件激活或取消激活时触发*/
}
comDsoFramerObject.OnDocumentClosed = function(){
/*当文档关闭时调用*/
}
comDsoFramerObject.OnDocumentOpened = function( path, document){
/*新建或打开文档触发此事件*/
}
comDsoFramerObject.OnFileCommand = function(item,cancel){
/*用户选择菜单命令触发,
可通过返回 cancel 值为 true 取消命令*/
}
comDsoFramerObject.OnPPTBeforeRightClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnPrintPreviewExit = function(){
/*打印预览关闭时触发*/
}
comDsoFramerObject.OnScreenModeChanged = function(isFullScreenMode){
/*用户选择菜单命令触发,
可通过返回 cancel 值为 true 取消命令*/
}
comDsoFramerObject.OnSheetBeforeDoubleClick = function(sheetName, row, col, cancel){
/* */
}
comDsoFramerObject.OnSheetBeforeRightClick = function(sheetName, row, col, cancel){
/* */
}
comDsoFramerObject.OnSheetChange = function(sheetName, row, col){
/* */
}
comDsoFramerObject.OnSheetselectionChange = function(sheetName,row, col){
/* */
}
comDsoFramerObject.OnWordBeforeDoubleClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnWordBeforeRightClick = function(selection,isCancel){
/* */
}
comDsoFramerObject.OnWordWPSSelChange = function(selection){
/* */
}
获取发前活动文档可用的所有保存格式选项,
可用于 saveAs 函数的每 2 个参数,
可以通过activeDocument 获取格式选项,例如 activeDocument.ppSaveAsRTF
DsoFramer控件
当前活动文档类型名称,
可能的返回值: "PowerPoint","Excel","Word"
如果当前是无效的文档,返回 null
= 添加书签
背景颜色
边框颜色
边框样式,数值:
dsoBorderNone = 0
dsoBorderFlat = 1
dsoBorder3D = 2
dsoBorder3DThin = 3
标题
创建新EXCEL文档
创建新WORD文档
删除书签
删除本地文件
文档名
前景颜色背景颜色
定位书签
返回修证次数
返回修订详情
返回临时文件路径
控件窗口
文档窗口
是否修改
是否只读
是否显示菜单栏
模态状态
office版本
打开各种 office 文件,参数2为可选参数,
如果不指定参数@2,则根据后缀名自动设置,
打开文件后使用 activeDocument 属性操作文档对象
参数2为可选参数,
如果不指定参数@2,则根据后缀名自动设置,
打开文件后使用 activeDocument 属性操作文档对象
保护文档
保存文档
保存文档,
可用的格式选项使用 SaveAsTypes 函数查看,
可以通过activeDocument 获取格式选项,例如 activeDocument.ppSaveAsRTF
保存文档,见下面的常量列表
设置当前时间
设置文档变量,opt可使用二进制数值:
第一位为1: 表示update域关联的,
第二位为1: 表示如果没有这个变量则添加
插入文件
设置和创建书签
此函数用法建议查看一下源码,
参考其他几个调用这个函数的函数
插入图像
设置菜单
可以使用按位或的多个选项
分页保存
设置基本信息,
例如设置只读密码 setValue("password","::DOCPROP:PassWord")
设置修改密码 setValue("password","::DOCPROP:WritePW")
显示对话框,
@dlgType 指定对话框类型,数值:
dsoDialogNew = 0
dsoDialogOpen = 1
dsoDialogSave = 2
dsoDialogSaveCopy = 3
dsoDialogPrint = 4
dsoDialogPageSetup = 5
dsoDialogProperties = 6
大纲视图
标准视图
大纲视图
打印预览视图
打印视图
是否显示修订留痕
设置文档显示模式,
建议改用 showNormalView,showOutlineView 等函数
显示web视图
是否显示标题栏
标题栏
标题栏文本颜色
是否显示工具栏
解保护文档
自动调整控件窗口大小
执行指定的动词命令
解析快捷键,
如果是快捷键返回真值
活动文档
Word 文档对象 https://docs.microsoft.com/en-us/office/vba/api/word.document
Excel 文档对象 https://docs.microsoft.com/en-us/office/vba/api/excel.workbook
PowerPoint 文档对象 https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation
当前文档对象
活动 Excel 表格
返回 Excel 指定名称的图表
返回 Excel 指定名称的对话框工作表
返回 Excel 工作簿上的指定工作表
设置 Excel 主题
设置 Excel 标题
返回 Excel 指定名称的工作表
关闭 Excel 工作簿
Excel 表格名称计数
Excel 工作表总数
返回指定的 Excel 工作表
全屏播放 PPT
_MNU_CLOSE=4
_MNU_NEW=1
_MNU_OPEN=2
_MNU_PGSETUP=0x64
_MNU_PRINT=0x256
_MNU_PRINTPV=0x126
_MNU_PROPS=0x32
_MNU_SAVE=8
_MNU_SAVEAS=0x16
_dsoBorder3D=2
_dsoBorder3DThin=3
_dsoBorderFlat=1
_ppSaveAsAddIn=8
_ppSaveAsBMP=0x13
_ppSaveAsDefault=0xB
_ppSaveAsGIF=0x10
_ppSaveAsHTML=0xC
_ppSaveAsHTMLDual=0xE
_ppSaveAsHTMLv3=0xD
_ppSaveAsJPG=0x11
_ppSaveAsMetaFile=0xF
_ppSaveAsPNG=0x12
_ppSaveAsPowerPoint3=4
_ppSaveAsPowerPoint4=3
_ppSaveAsPowerPoint4FarEast=0xA
_ppSaveAsPowerPoint7=2
_ppSaveAsPresentation=1
_ppSaveAsRTF=6
_ppSaveAsShow=7
_ppSaveAsTemplate=5
_wdAllowOnlyComments=1
_wdAllowOnlyFormFields=2
_wdAllowOnlyRevisions=0
_wdFormatDOSText=4
_wdFormatDOSTextLineBreaks=5
_wdFormatDocument=0
_wdFormatEncodedText=7
_wdFormatHTML=8
_wdFormatRTF=6
_wdFormatTemplate=1
_wdFormatText=2
_wdFormatTextLineBreaks=3
_wdFormatUnicodeText=7
_wdMasterView=5
_wdNoProtection=-1
_wdNormalView=1
_wdOutlineView=2
_wdPrintPreview=4
_wdPrintView=3
_wdWebView=6
_xlAddIn=0x12
_xlCSV=6
_xlCSVMSDOS=0x18
_xlCSVMac=0x16
_xlCSVWindows=0x17
_xlCurrentPlatformText=-4158
_xlDBF2=7
_xlDBF3=8
_xlDBF4=0xB
_xlDIF=9
_xlExcel2=0x10
_xlExcel2FarEast=0x1B
_xlExcel3=0x1D
_xlExcel4=0x21
_xlExcel4Workbook=0x23
_xlExcel5=0x27
_xlExcel7=0x27
_xlExcel9795=0x2B
_xlHtml=0x2C
_xlIntlAddIn=0x1A
_xlIntlMacro=0x19
_xlSYLK=2
_xlTemplate=0x11
_xlTextMSDOS=0x15
_xlTextMac=0x13
_xlTextPrinter=0x24
_xlTextWindows=0x14
_xlUnicodeText=0x2A
_xlWJ2WD1=0xE
_xlWJ3=0x28
_xlWJ3FJ3=0x29
_xlWK1=5
_xlWK1ALL=0x1F
_xlWK1FMT=0x1E
_xlWK3=0xF
_xlWK3FM3=0x20
_xlWK4=0x26
_xlWKS=4
_xlWQ1=0x22
_xlWorkbookNormal=-4143
_xlWorks2FarEast=0x1C