VSTO | 零基础开发个人专属PPT导航插件教程

简介: 零基础开发个人专属PPT导航插件教程

hello,大家好,我是似最初

一名不着调的PPTer

谈起PPT插件,几乎现在已经被@只为设计巨佬开发到天花板了

所以作为小白,只能简单和大家共同探讨一下如何做一款独属的PPT导航插件。

诸如下面这款(注:非本人开发)

20211120aa32t

废话不多数,直接进入主题。

01、部署开发环境
VSTO插件的获取,网络搜索Visual Studio 2022或点击https://visualstudio.microsoft.com/zh-hans/downloads/ 进行下载,目前最新版本为2022.选择下载免费社区版,下载完成后,进入下一步进行安装。

20211120eytnk

由于VSTO的全套包安装大概有40多G,因此在安装时按照自己需求选择安装即可,下面借用@只为设计的一张安装图,我们选择office/sharepoint开发,至于开发语言,可以选择VB或C#,这里我们选择VB。

20211120wwp82

安装完成后后,打开大概是这个样子的。

20211120y57pq

开发软件:Visual Studio 2022
调试对象:MS office(PPT)
开发语言:VB/C#
02、创建PPT外接程序
完成第一步,我们就具备了开发一个插件的环境基础,接下来就是创建外接程序。

第一步:选择创建新项目。
20211120z1141

第二步:创建PPT外接程序
如下图所示,选择开发语言为VB(如果有c#开发经验也可选择C#),开发平台为Windows,项目类型为office,这样方便我们快速找到 powerpoint Vsto外接程序 ,点击创建。

202111208ekj4

第三步:配置新项目
配置新项目信息,主要为项目名称,如下图的PPTdesk,文件存储位置,以及框架,记得勾选将解决方案和项目放在同一目录,便于后期管理。

20211120k7d1y

第四步:认识开发界面
创建完成后,即可看到如下的开发界面,上面菜单栏不做介绍,简单说下左边导航栏,主要用到工具栏里面的控件以及快速打开最近访问文件,右边为方案结构,右下为窗体及控件的属性栏,这里比较常用。

20211120zjtmq

第五步:创建功能区(可视化设计)
如图,点击项目名称,右键添加项目,选择新建项目,找到功能区(可视化),点击添加。

20211120wxa0p

20211120pgrwr

来到可视化功能设计界面,可以看到Ribbon、Tab、Group,它们分别对应office里面的菜单容器、菜单组、功能区,其中我们主要在Group里面添加功能,也就是我们后面要说的控件。

2021112095wet

我们将鼠标放到上图中tabaddin即可在右下角属性页里面看到上面的属性值,其中label即是名称,如下图,将鼠标放到上面即可在下方弹出说明,我们修改为@似最初 然后发现可视化功能区的名称已经发生改变。

202111206fevn

同理,点击Group1.即可在属性页里面修改Group1的label值,这里我修改为了商用素材。

第六步:添加全局代码
新建模块,同上,右键,添加新建项,选择模块,添加,进入Module1.vb里面,添加如下代码:

Module Module1
Public app As PowerPoint.Application = Globals.ThisAddIn.Application
End Module
这句代码的大意是将此加载项定义为PPT加载项,并赋值给app这个全局变量,app可以修改,比如自己改为xpp也行,至于PowerPoint.Application,如果是excel或word,改为相应的应用名称即可。

20211120gc1do

20211120oxqis

20211120oun24

第七步:添加控件按钮
回到可视化功能区设置界面,点击左上角的工具箱,可以发现里面有很多控件,可以将鼠标放到名称上,即可看到说明,这里我们先使用button按钮进行测试。将button 按钮拖到Group1中,同样点击button1即可在右下角属性中修改其内容,这里我改为弹出对话框。

20211120aa5ja

双击刚才的按钮,即可进入代码编辑区,这段代码的意思是点击button1的触发效果,在其包裹的sub里面输入msgbox (“测试内容”),这句代码很简单,就是弹出“测试内容”这么一个提示框。

2021112025uuz

第八步:初步测试
上面步骤完成后,就可以检测是否已经连接到PPT了,我们点击菜单栏中的启动进行调试,记得选择为debug模式。

20211120oz7we

打开PPT,发现刚才的tab和测试按钮已经在PPT菜单栏当中,我们点击弹出对话框,已经可以得到想要的效果。

20211120vf60p

第九步:创建网址导航
终于来到最简单的一步了,下面我们要做的就是添加自己的网址导航按钮了,为了说明几个控件的使用,我要重新创建一个group。

回到可视化功能区,点击工具箱,找到groub控件,拖拽到tab里面,并改名lable为资源库,同理,拖动button控件至资源库里面,改名为PP导航,如果想要下拉效果,可以先放置menu控件,再往里面放按钮即可,其他控件效果自行尝试。

20211120ig208

双击刚才建立的PP导航按钮,进入代码页面,添加代码:System.Diagnostics.Process.Start("https://ppask.cn")

这句代码的意思是打开网址:https://ppask.cn

到这里,我们想要实现的导航效果已经可以了,再次打开调试,就会发现现在已经能够打开网站。

2021112092kbm

第十步:按钮美化
这步,主要是为我们的按钮添加图标,回到可视化设计页面,单击按钮,找到属性中外观一类,选择ContorSize即可为按钮设置图标尺寸,这里主要有大小两种,效果请自行查看PPT菜单栏。

20211120c5b2e

选择Image右边的三个点,即可进入添加图标,根据自己需要导入图片即可。

20211120a7z87

到这里,大家就可以完全做一个属于自己的导航插件了,只需要重复九、十步骤,添加自己喜欢的网址即可,我们看一下效果。

20211120ewbq7

最后一步,就是发布,如果我们要将插件给其他人使用,只要把debug改为release,然后点击生成菜单中的发布即可得到VSTO安装包,将安装包发给别人就能使用了。

20211120nceh4

目录
相关文章
|
API
【工具推荐】 Obsidian 插件 Obsidian to Flomo 一键同步内容到 Flomo 插件
Obsidian to Flomo 是一款可以一键发送内容到 Flomo 的Obsidian 插件。
832 0
|
6月前
如何利用 HBuilderX 制作图文混排的网页
如何利用 HBuilderX 制作图文混排的网页
281 3
|
6月前
|
JavaScript 搜索推荐 前端开发
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
《VitePress 简易速速上手小册》第2章:Markdown 与页面创建(2024 最新版)
231 0
|
6月前
|
知识图谱
Obsidian使用初体验
Obsidian使用初体验
170 0
|
前端开发
RowFish v2.0.1 已经发布-一款集合教程,文档和导航的多功能开源博客系统
RowFish v2.0.1 已经发布-一款集合教程,文档和导航的多功能开源博客系统
101 0
|
移动开发 算法 HTML5
提升网页阅读体验的三款优秀大纲插件(2023)
阅读长篇文章或复杂网页时,清晰的大纲结构可以帮助我们更好地理解和组织信息。在这篇博客中,我将向大家推荐三款优秀的网页大纲插件,帮助您提升阅读效率和体验。
提升网页阅读体验的三款优秀大纲插件(2023)
|
存储 缓存 Java
如何利用 VsCode + evernote + markdown 将自己的博客自动同步成笔记
本文介绍利用 VsCode + evernote + markdown 将自己的博客自动同步成笔记的方法。
如何利用 VsCode + evernote + markdown 将自己的博客自动同步成笔记
|
开发工具
开发工具总结(5)之Markdown语法图文全面详解及其工具介绍
版权声明:本文为博主原创文章(少量文字参考他人博文,已加上引用说明),未经博主允许不得转载。https://www.jianshu.com/p/c0a2897ad4eb 转载请标明出处:https://www.jianshu.com/p/c0a2897ad4eb 本文出自 AWeiLoveAndroid的博客 【前言】写过博客或者github上面的文档的,应该知道Markdown语法的重要性,不知道的朋友们也别着急,一篇博客轻松搞定Markdown语法。
1698 0
|
Go API C#
开发unity插件——一次搞定unity编辑器常用功能
# 开发unity插件——一次搞定unity编辑器常用功能 ![unity](http://upload-images.jianshu.io/upload_images/2990112-b1dfd0c91d72136e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 这篇文章主要分享unity中与editor插件等相关的使
12824 0
下一篇
无影云桌面