定制开发小程序Excel VBA 实现Ribbon自定义功能区

Excel 实现Ribbon定制开发小程序定制开发小程序自定义功能区 2022.12.3修改

目录

最近用vba编辑Excel自定义功能区,定制开发小程序试了很多办法,定制开发小程序看了很多文章,过程都很复杂,实现起来难度也比较大。但功夫不负有心人,最终成功突围,也免去了用代码编辑自定义功能区排版布局。

自定义功能区的实现

效果图:

1.编写执行代码生成.xlam文件,拷贝到%APPDATA%\Microsoft\AddIns\

VBA代码比如:

Sub 删除空行()    On Error Resume Next    Dim Rng As Range    Set Rng = Intersect(ActiveSheet.UsedRange, Selection, Selection.SpecialCells(xlCellTypeBlanks))    Rng.EntireRow.DeleteEnd Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

将以上vba代码另存为.xlam文件,并拷贝到目录%APPDATA%\Microsoft\AddIns\

2.编辑自定义功能区生成Excel.officeUI文件,拷贝到%LOCALAPPDATA%\Microsoft\office\

方法:
(1)通过Excel生成Excel.exportedUI文件;
(2)将Excel.exportedUI文件删除第一行<mso:cmd app=“Excel” dt=“1”/>,另存为Excel.officeUI文件;
(3)将Excel.officeUI拷贝到%LOCALAPPDATA%\Microsoft\office\Excel.officeUI;

(1)通过Excel生成Excel.exportedUI文件,具体步骤如下:
通过Excel添加到自定义功能区
在菜单里会显示如下结果:


导出自定义功能区为Excel.exportedUI文件。

(2)将Excel.exportedUI用记事本打开,删除第一行:<mso:cmd app=“Excel” dt=“1” />另存为Excel.officeUI。
(3)拷贝文件,将Excel.officeUI拷贝到%LOCALAPPDATA%\Microsoft\office\Excel.officeUI。

实现可移植自定义功能区的过程

1.制作AddIn.xlam文件,第一次安装时启动excel并加载宏设置为选中,效果如下图:

Private Sub Workbook_Open()    On Error Resume Next    Dim oXL As Object, oAddin As Object    AddInName = "MyTool.xlam"    URL = Me.Path & "\"    Set oXL = Application     With oXL        For i = 1 To .AddIns.Count            If .AddIns(i).Name = AddInName And .AddIns(i).FullName <> URL & AddInName Then                .Workbooks(AddInName).Close                FileCopy URL & AddInName, .AddIns(i).FullName                .Workbooks.Open (.AddIns(i).FullName)                .AddIns(i).Installed = True            End If        Next        Set oAddin = .AddIns.Add(URL & AddInName, True)        oAddin.Installed = True        .Quit    End With    Set oXL = NothingEnd Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2.使用b批量处理,生成run.bat,实现功能包括:

运行AddIn.xlam
拷贝MyTool.xlam到%APPDATA%\Microsoft\AddIns\MyTool.xlam
拷贝Excel.officeUI到%LOCALAPPDATA%\Microsoft\office\Excel.officeUI

@echo off::==========================::启用管理员模式setlocal EnableDelayedExpansioncolor 3e::title 添加服务配置PUSHD %~DP0 & cd /d "%~dp0"%1 %2mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof:runas::==========================::安装程序echo.echo 正在安装. . .::—关闭word、excel—set p1=excel.exeset p2=winword.exetasklist|findstr /i %p1%&&taskkill /f /im %p1% >nul 2>nultasklist|findstr /i %p2%&&taskkill /f /im %p2% >nul 2>nul::echo —安装—set errorl=1echo 1.正在设置加载项. . . copy /Y MyTool.xlam %APPDATA%\Microsoft\AddIns\MyTool.xlam >nul 2>nul && echo Excel加载项成功导入!|| IF ERRORLEVEL 1 set errorl=0&echo Excel加载项未导入×start /b/min/wait AddIn.xlam >nul 2>nul && echo Excel加载项已启用!|| echo Excel加载项未能启用×::==========================echo. echo 2.正在导入officeUI文件. . .copy /Y Excel.officeUI %LOCALAPPDATA%\Microsoft\office\Excel.officeUI >nul 2>nul && echo Excel.UI成功导入!|| IF ERRORLEVEL 1 set errorl=0&echo Excel.UI未导入×::==========================echo. if %errorl%==1 echo 安装成功!if %errorl%==0 echo 安装不成功,请联系发布者检查未安装项后再重新安装!echo.@pauseexit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

可将以上文件压缩成自运行压缩包(run.bat、AddIn.xlam、MyTool.xlam、Excel.officeUI),解压包时运行run.bat,就可将自定义功能区内容移植到其他用户excel自定义功能区。

安装成功的效果图:

希望能给以上困扰的朋友们一些帮助!

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发