VSTO | 零基础开发个人专属PPT导航插件
hello,大家好,我是似最初
一名不着调的PPTer
谈起PPT插件,几乎现在已经被@只为设计巨佬开发到天花板了
所以作为小白,只能简单和大家共同探讨一下如何做一款独属的PPT导航插件。
诸如下面这款(注:非本人开发)
废话不多数,直接进入主题。
01、部署开发环境
VSTO插件的获取,网络搜索Visual Studio 2022或点击:
https://visualstudio.microsoft.com/zh-hans/downloads
进行下载,目前最新版本为2022,选择下载免费社区版,下载完成后,进入下一步进行安装。
由于VSTO的全套包安装大概有40多G,因此在安装时按照自己需求选择安装即可,下面借用@只为设计的一张安装图,我们选择office/sharepoint开发,至于开发语言,可以选择VB或C#,这里我们选择VB。
安装完成后后,打开大概是这个样子的。
开发软件:Visual Studio 2022
调试对象:MS office(PPT)
开发语言:VB/C#
02、创建PPT外接程序
完成第一步,我们就具备了开发一个插件的环境基础,接下来就是创建外接程序。
第一步:选择创建新项目。
03、创建PPT外接程序
如下图所示,选择开发语言为VB(如果有c#开发经验也可选择C#),开发平台为Windows,项目类型为office,这样方便我们快速找到 powerpoint Vsto外接程序 ,点击创建。
04、配置新项目
配置新项目信息,主要为项目名称,如下图的PPTdesk,文件存储位置,以及框架,记得勾选将解决方案和项目放在同一目录,便于后期管理。
05、认识开发界面
创建完成后,即可看到如下的开发界面,上面菜单栏不做介绍,简单说下左边导航栏,主要用到工具栏里面的控件以及快速打开最近访问文件,右边为方案结构,右下为窗体及控件的属性栏,这里比较常用。
06、创建功能区(可视化设计)
如图,点击项目名称,右键添加项目,选择新建项目,找到功能区(可视化),点击添加。
来到可视化功能设计界面,可以看到Ribbon、Tab、Group,它们分别对应office里面的菜单容器、菜单组、功能区,其中我们主要在Group里面添加功能,也就是我们后面要说的控件。
我们将鼠标放到上图中tabaddin即可在右下角属性页里面看到上面的属性值,其中label即是名称,如下图,将鼠标放到上面即可在下方弹出说明,我们修改为@似最初 然后发现可视化功能区的名称已经发生改变。
同理,点击Group1,即可在属性页里面修改Group1的label值,这里我修改为了商用素材。
07、添加全局代码
新建模块,同上,右键,添加新建项,选择模块,添加,进入Module1.vb里面,添加如下代码:
Module Module1
Public app As PowerPoint.Application = Globals.ThisAddIn.Application
End Module
这句代码的大意是将此加载项定义为PPT加载项,并赋值给app这个全局变量,app可以修改,比如自己改为xpp也行,至于PowerPoint.Application,如果是excel或word,改为相应的应用名称即可。
08、添加控件按钮
回到可视化功能区设置界面,点击左上角的工具箱,可以发现里面有很多控件,可以将鼠标放到名称上,即可看到说明,这里我们先使用button按钮进行测试。将button 按钮拖到Group1中,同样点击button1即可在右下角属性中修改其内容,这里我改为弹出对话框。
双击刚才的按钮,即可进入代码编辑区,这段代码的意思是点击button1的触发效果,在其包裹的sub里面输入msgbox (“测试内容”),这句代码很简单,就是弹出“测试内容”这么一个提示框。
09、初步测试
上面步骤完成后,就可以检测是否已经连接到PPT了,我们点击菜单栏中的启动进行调试,记得选择为debug模式。
打开PPT,发现刚才的tab和测试按钮已经在PPT菜单栏当中,我们点击弹出对话框,已经可以得到想要的效果。
10、创建网址导航
终于来到最简单的一步了,下面我们要做的就是添加自己的网址导航按钮了,为了说明几个控件的使用,我要重新创建一个group。
回到可视化功能区,点击工具箱,找到groub控件,拖拽到tab里面,并改名lable为资源库,同理,拖动button控件至资源库里面,改名为PP导航,如果想要下拉效果,可以先放置menu控件,再往里面放按钮即可,其他控件效果自行尝试。
双击刚才建立的PP导航按钮,进入代码页面,添加代码:System.Diagnostics.Process.Start("https://ppask.cn")
这句代码的意思是打开网址:https://ppask.cn 。
到这里,我们想要实现的导航效果已经可以了,再次打开调试,就会发现现在已经能够打开网站。
11、按钮美化
这步,主要是为我们的按钮添加图标,回到可视化设计页面,单击按钮,找到属性中外观一类,选择ContorSize即可为按钮设置图标尺寸,这里主要有大小两种,效果请自行查看PPT菜单栏。
选择Image右边的三个点,即可进入添加图标,根据自己需要导入图片即可。
到这里,大家就可以完全做一个属于自己的导航插件了,只需要重复10步骤以后,添加自己喜欢的网址即可,我们看一下效果。
最后一步,就是发布,如果我们要将插件给其他人使用,只要把debug改为release,然后点击生成菜单中的发布即可得到VSTO安装包,将安装包发给别人就能使用了。
VSTO | 零基础开发个人专属PPT导航插件相关推荐
- 小程序的 HelloWord 01《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...
- React + Redux + Express + Mongodb 零基础开发完整大型商城网站视频教程(97 个视频)
React + Redux + Express + Mongodb 零基础开发完整大型商城网站视频教程(97 个视频) mern 架构零基础开发完整电商网站 React + Redux + Expre ...
- 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...
- html5游戏开发-零基础开发RPG游戏-开源讲座(四)
了解上三篇的内容请点击: html5[color=rgb(68, 68, 68) !important]游戏开发-零基础开发RPG游戏-开源讲座(一) http://www.html5cn.org/a ...
- html5游戏开发-零基础开发《圣诞老人送礼物》小游戏
开言: 以前lufy前辈写过叫"html5游戏开发-零基础开发RPG游戏"的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识. ...
- Android零基础开发到项目实战
Android零基础开发到项目实战(目录) 前言:本教程适合零基础学习安卓开发的伙伴,下面是目录,本博主会每天定时更新每一章节的教程,未完..... 一.Java基础阶段 day01_Java语言概述 ...
- 零基础开发 Node.js Addons 插件:参数与返回值处理
上一篇回顾 零基础开发 Node.js Addons 插件:Hello Node-API.本篇介绍使用 Node-API 为 Node.js 开发基于 C 的 Addons 时,如何接收与处理 Nod ...
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...
salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...
- html5游戏开发-零基础开发RPG游戏-开源讲座(三)-卷轴对话实现
前两篇,RPG的开发已经实现了添加地图和添加游戏人物,本篇来实现地图的卷轴滚动和人物对话的实现,效果如下 想要了解前两篇内容,请电击下面的链接 html5游戏开发-零基础开发RPG游戏-开源讲座(一) ...
最新文章
- k8s实战之数据卷(volume)
- 11g RMAN Restore archivelog用法
- c#,Halcon_HObject双向转换HImage
- 透视大数据,未来市场谁主沉浮?这个4月,3W企服大数据OpenForm等你报名!
- 【Java进阶】Eureka讲解与应用
- C语言数组+冒泡排序
- 今天在海淀黄庄地铁站真实经历 写下来希望我的好友可以看一下!
- 球体表面积原来还可以这么求!
- TCPDUMP/LIBPCAP 3-PCAP's MAN手册(1)
- 优酷视频如何意见反馈?优酷视频怎么意见反馈
- Dual-polarity supply provides ±12V from one IC
- Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)
- ASP.NET MVC 利用Razor引擎生成静态页
- FileOutputStream输出流
- STM8S103之外部中断
- Android音频系统之音频基础
- python 判断每月最后一天_在Python中获取本月的最后一天
- 君莫笑系列视频学习(1)
- PS 2019 cc衣服换色+去白边
- 2021年全球及中国旅游产业发展现状及趋势分析[图]
热门文章
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用9
- Pytorch 常用损失函数拆解
- 初识EMC元器件(七)——差模电感的参数解读及选型应用
- 关于keil软件error:L6236E:NO section matches selector-no section to be FIRST/LAST的报错解决方法
- 2014.10.22项目2
- Python学习笔记Task11.魔法方法
- 瓜瓜打游戏(EASY) (计数dp
- 数据结构与算法 - 链表(java)
- 苹果备份与恢复_苹果恢复数据有哪些可以选择的途径?
- vue 下拉选是多选的,并且回显