VBA 自定义Add-in

news2024/11/15 11:49:09

1. 通过下面的链接下载工具:OfficeCustomUIEditorFiles

    VBA Ribbon - Microsoft Download

2.将上面下载的ZIP文件解压缩后,运行其中的 “CustomUIEditor.exe”,
   打开事先准备好的.xlsm文件,例如:self.xlsm。

    2-1.点击“Insert”,选择“Office 2007 Custom UI Part”,生成“customUI.xml”。

    2-2.点击“Insert”,选择“Sample XML”下的“Custom Tab”。

    2-3.点击对号图标的“Validate”按钮,检查修改的XML文件是否正确。

           例如:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="false">
		<tabs>
			<tab id="ToolBox" label="ToolBox" insertBeforeMso="TabHome">
				<group id="Group1" label="Group1">
					<button id="btnSave" label="A1" imageMso="MsoSave" onAction="sbSave" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

    2-4.保存后退出。

3.打开self.xlsm文件,新建标准模块,插入回调函数。
   例如:

'Callback for btnSave onAction
Sub sbSave(control As IRibbonControl)
    Dim sFirstSheetName As String
    Dim bFirstSheetFlg As Boolean
    Dim ws As Worksheet
    
    
    bFirstSheetFlg = False
    For Each ws In ActiveWorkbook.Worksheets
        If bFirstSheetFlg = False And ws.Visible = True Then
            sFirstSheetName = ws.Name
            bFirstSheetFlg = True
        End If
        
        If ws.Visible = xlSheetVisible Then
            ws.Activate
            ActiveSheet.Range("A1").Select
        End If
    Next
    
    Sheets(sFirstSheetName).Select
    ActiveWorkbook.Save
End Sub

4.将“self.xlsm”另存为扩展名为“.xlam”到
   默认Add-in路径“C:\Users\用户名\AppData\Roaming\Microsoft\AddIns”下,
   选择“开发”TAB,再选择“Excel Add-In”,勾选Self,“ToolBox”TAB被显示出来,就可以使用啦。
   如下图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu20.04+MAVROS+PX4+Gazebo保姆级安装教程

Ubuntu20.04MAVROSPX4Gazebo安装PX4步骤安装MAVROS安装QGCPX4仿真安装PX4步骤 从github上clone源码 git clone https://github.com/PX4/PX4-Autopilot.git --recursive进入PX4-Autopilot文件夹&#xff0c;继续下载未下载完的组件 cd PX4-Autopilot/ git submodule update -…

什么是数据库连接池?Druid(德鲁伊)连接池的使用详细解读

文章目录1. 数据库连接池2. 概念3. 实现4. Druid 连接池的使用5. 总结Java编程基础教程系列1. 数据库连接池 2. 概念 前面在 JDBC API 的使用详细解读文章中&#xff0c;获取的数据库连接对象 conn&#xff0c;在使用时创建&#xff0c;使用完毕就会将其销毁。这样重复创建和销…

Python if else对缩进的要求

Python 是以缩进来标记代码块的&#xff0c;代码块一定要有缩进&#xff0c;没有缩进的不是代码块。另外&#xff0c;同一个代码块的缩进量要相同&#xff0c;缩进量不同的不属于同一个代码块。不要忘记缩进if、elif 和 else 后面的代码块一定要缩进&#xff0c;而且缩进量要大…

【奇妙的数据结构世界】 用经典例题对数组进行全面分析 | C++

第八章 数组 目录 第八章 数组 ●前言 ●一、数组是什么&#xff1f; 1.简要介绍 2.具体情况 ●二、数组典型例题——一维&二维&三维 1.一维数组&#xff08;校门外的树&#xff09; 2.二维数组&#xff08;彩票摇奖&#xff09; 3.三维数组&#xff08…

自己动手写一个操作系统——MBR(1)

文章目录前言MBR1) 512 字节镜像2) 0x55 和 0xAAqemu 运行参考前言 上篇《自己动手写一个操作系统——我们能做什么&#xff0c;我们需要做什么》我们介绍到 BIOS 会遍历每个磁盘的第一个扇区查找 MBR&#xff0c;找到后便将 MBR 加载到内存并跳转过去。如果没找到&#xff0c…

红黑树和平衡二叉树的区别

一.红黑树的定义 1.节点是红色或者黑色&#xff1b; 2.根节点和叶子节点是黑色&#xff0c;叶子节点为空节点&#xff1b; 3.每个红色节点的叶子节点都是黑色&#xff1b; 4.从任何节点到叶子节点的所有路径包含相同数目的黑色节点&#xff1b; 5.红黑树实现平衡和保持红黑…

代码随想录算法训练营三期 day 25 - 回溯 (2) (补)

216. 组合总和III 题目描述: 216. 组合总和 III 原文链接: 216. 组合总和 III 视频链接: 216. 组合总和 III 树形结构 回溯三部曲&#xff1a; ① 确定回溯函数参数及返回值 和 77. 组合 一样&#xff0c;依然需要一维数组 path 来存放符合条件的结果&#xff0c;二维数组 r…

leetcode-每日一题-计算应缴税款总额(简单,数学逻辑)

给你一个下标从 0 开始的二维整数数组 brackets &#xff0c;其中 brackets[i] [upperi, percenti] &#xff0c;表示第 i 个税级的上限是 upperi &#xff0c;征收的税率为 percenti 。税级按上限 从低到高排序&#xff08;在满足 0 < i < brackets.length 的前提下&am…

(19)go-micro微服务filebeat收集日志

文章目录一 Filebeat介绍二 FileBeat基本组成三 FileBeat工作原理四 Filebeat如何记录文件状态:五 Filebeat如何保证事件至少被输出一次六 安装Filebeat七 使用Filebeatfilebeat.yml编写八 最后一 Filebeat介绍 filebeat是Beats中的一员。 Beats在是一个轻量级日志采集器&…

2022——>2023

2022年对于我来说&#xff0c;是极其不平凡的一年&#xff0c;因为在这一年&#xff0c;我面临了人生的第一次重大的选择——高考。老师们常说&#xff1a;“一分压倒一操场人。”这句话是我高考看完自己的成绩之后深有体会的。超过湖南本科线没几分的我&#xff0c;志愿真的是…

剖析“类和对象” (中) -------- CPP

在上一篇博客中 (剖析“类和对象” (上) -------- CPP) 提到&#xff0c;一个类中什么成员都没有的称为“空类”。一个“空类”中真的什么都没有吗&#xff1f; 其实不然&#xff0c;任何类中什么都不写时&#xff0c;编译器会自动生成一下六个默认成员函数。 默认成员函数&am…

Fisco Bcos区块链二(搭建使用控制台,体验Holleworld合约调用)

文章目录区块链开荒技术文档&#xff1a;https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html2. 配置及使用控制台准备依赖启动并使用控制台3. 部署及调用HelloWorld合约编写HelloWorld合约&#xff08;此处不需要编写&#xff0c;控制台已内置&#xff…

【每日一道智力题】之海盗分金币(上)

文章目录题目&#xff1a;解答&#xff1a;题目变形&#xff1a;解答&#xff1a;总结题目&#xff1a; 5个海盗抢到了100枚金币&#xff0c;每一颗都一样的大小和价值。 他们决定这么分&#xff1a; 抽签决定自己的号码&#xff08;1&#xff0c;2&#xff0c;3&#xff0c;4…

IDEA 2022 创建 Spring Boot 项目详解

如何用 IDEA 2022 创建并初始化一个 Spring Boot 项目&#xff1f; 目录 如何用IDEA 2022创建并初始化一个Spring Boot项目&#xff1f; 0. 环境说明 1. 创建Spring Boot项目 2. 编写初始化代码 0. 环境说明 IDEA 2022.3.1JDK 1.8Spring Boot 1. 创建 Spring Boot 项目…

Linux常用命令——smbclient命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) smbclient 交互方式访问samba服务器 补充说明 smbclient命令属于samba套件&#xff0c;它提供一种命令行使用交互式方式访问samba服务器的共享资源。 语法 smbclient(选项)(参数)选项 -B<ip地址>&…

【SpringCloud20】SpringCloud Alibaba Seata处理分布式事务

目录1.分布式事务问题2.Seata简介2.1 是什么2.2 作用2.3 下载2.4 如何使用3.Seata-Server安装3.1 下载网址3.2 下载版本3.3 seata解压到指定目录并修改文件3.3.1 nacos新增配置文件3.3.2 修改application.yml3.4 数据库新建seata3.5 在seata里建表3.6 启动Nacos端口号88483.7 启…

Spring介绍

Spring是分层的全栈式的轻量级开发框架,以IOC和AOP为核心,官网是https://spring.io Spring优势 1 方便解耦,简化开发 Spring通过容器,将对象的创建从代码中剥离出来,交给Spring控制,避免直接编码造成模块之间的耦合度高,用户也不必自己编码处理对象的单例和多例控制,主要关注接…

C语言基础知识(36)

C语言中的数组和指针有什么区别数组和指针之间的一个重要区别是数组中元素的地址始终是固定的&#xff0c;不能在执行时修改地址&#xff0c;但对于指针&#xff0c;可以根据需要更改指针的地址。分支结构1.简单if语句C语言中的分支结构语句中的if条件语句。简单if语句的基本结…

Linux内核驱动初探(一) LVDS显卡

目录 0. 前言 1. menuconfig 2. 编译报错与打补丁 3. 设备树与display-timings 4. 拓展&#xff1a;RGB24 0. 前言 这次的工作主要是把某项目设备上(iMX6DL)的内核版本从 4.19.x 升级到 5.15.32&#xff0c;是作为该项目整个BSP升级计划的一部分。 该内核升级工作移交给…

PX4+Offboard模式+代码控制无人机起飞(Gazebo)

参考PX4自动驾驶用户指南 https://docs.px4.io/main/zh/ros/mavros_offboard_cpp.html 新建ros项目工程 mkdir -p px4_offboard_ws/src接着进入文件编译一下 cd px4_offboard_ws catkin_make进入src目录&#xff0c;创建ros功能包 catkin_create_pkg t1_offboard_rtakeoff …