ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > VSTO > 如何从VBA转入到VSTO开发系列教程

如何从VBA转入到VSTO开发系列教程

作者:绿色风 分类: 时间:2022-08-18 浏览:121
楼主
wise
VSTO开发对于很多VBA爱好者而言,神秘而又怕,但又想利用其开发插件。目前市面上有关于VSTO开发的书很少,而网上相关的资料也特别少,本文从初学者出发,一点一滴地介绍如何从VBA转上VSTO开发。
1、如何创建新的工作簿:

  1.     Sub CreateWorkbook()
  2.         '创建新的工作簿
  3.         Dim newWorkbook As Excel.Workbook = Me.Application.Workbooks.Add()
  4.     End Sub

在本例子中,主要通过定义一个newWorkbook的Excel工作簿变量,然后通过Me.Application.Workbooks.Add()
进行创建工作簿。这和VBA的中创建工作簿有点差异。
2、如何打开工作簿:
例如:需要打开D盘中的“疑难18.xlsx“工作簿,使用的VSTO代码为:

  1.     Sub OpenWorkbook()
  2.         '打开工作簿
  3.         Me.Application.Workbooks.Open("D\疑难18.xlsx")
  4.     End Sub

其与VBA中的语法差异不大,主要是前面加了Me.Application
2楼
wise
3、如何关闭当前活动的工作簿,其VSTO代码如下:
对于当前工作簿而言,必须使用Globals.ThisWorkbook.Close来进行关闭。
而对于活动的工作簿,因为为当前代码的窗口,所以其可以使用Me.Application.ActiveWorkbook.Close进行关闭。
对于特定的工作簿,则可以根据工作簿名称进行来关闭,例如本例中的:Me.Application.Workbooks("VBA过渡到VSTO.xlsx").Close
  1.     Sub CloseWorkbook()
  2.         '关闭当前工作簿
  3.         Globals.ThisWorkbook.Close(saveChanges:=False)
  4.         '关闭当前工作簿
  5.         Me.Application.ActiveWorkbook.Close(SaveChanges:=False)
  6.         '关闭某工作簿
  7.         Me.Application.Workbooks("VBA过渡到VSTO.xlsx").Close(SaveChanges:=False)
  8.     End Sub
3楼
wise
4、如何保存当前工作簿,其VSTO代码为:
  1.     Sub SaveWorkbook()
  2.         '保存当前工作簿
  3.         Me.Application.ActiveWorkbook.Save()
  4.         '保存到某路径
  5.         Me.Application.ActiveWorkbook.SaveAs("D:\疑难18.xlsx")
  6.     End Sub
在本代码中,保存当前工作簿的代码与常规的VBA的代码差异不大,为ActiveWorkbook.Save
保存到某路径,其代码为:ActiveWorkbook.SaveAs("D:\疑难18.xlsx")
4楼
wise
5、如何激活工作表:
  1.     Sub ActiveWorkbook1()
  2.         '激活工作表
  3.         Me.Application.Workbooks(1).Activate()
  4.     End Sub
  1.     Sub Activeworkbook3()
  2.         Globals.ThisWorkbook.Activate()
  3.     End Sub
一个是基于当前工作表模块对工作簿进行激活,一个是基于当前工作簿进行激活。
5楼
wise
6、如何设置密码,其VSTO程序如下:

  1. Public Class ThisWorkbook

  2.     Private Sub ThisWorkbook_Startup() Handles Me.Startup
  3.         Call SetPassword()
  4.     End Sub
  5.     Sub SetPassword()
  6.         Dim mypassword As String
  7.         Dim confirPassword As String
  8.         mypassword = Me.Application.InputBox("请输入密码:").ToString()
  9.         'ToString()返回表示当前对象的字符串
  10.         confirPassword = Me.Application.InputBox("请重复输入密码:").ToString()
  11.         If mypassword <> confirPassword Then
  12.             MessageBox.Show("密码不符合")
  13.             Globals.ThisWorkbook.Password = ""
  14.         Else
  15.             Globals.ThisWorkbook.Password = mypassword
  16.         End If
  17.     End Sub

  18. End Class
此处与VBA差异点是:
  1. Me.Application.InputBox("请输入密码:").ToString()
VBA的是
  1. Inputbox("请输入密码:")
此处在学习的时候需要注意到。
ToString 是 .NET Framework 中主要的格式化方法。 它将对象转换为其字符串表现形式,使它适合于显示。
Object.ToString 方法:返回表示当前对象的字符串。
6楼
wqfzqgk
7楼
nzkboy
太牛了,希望多出点类似的文章呀,我也好尽快上手vsto
8楼
1574533899
太牛了,希望多出点类似的文章呀,我也好尽快上手vsto
9楼
minren118
vsto还没了解过,多多学习才行
10楼
铁马冰河_定制EX
我用VSTO新建了一个表,并且加了密码,并保存。在D盘能找到这个表,可是双击,却打不开。回到VSTO中,用代码打开,完全正常。为什么呢?
11楼
ak1285064879


免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap