如何在 VB 中以编程方式创建并调用 Excel 宏

原创 2007年09月13日 11:28:00
1. 在 Visual Basic 中创建一个标准 EXE 项目。默认情况下会创建 Form1。
2. 单击“项目”菜单中的“引用”,然后选中“Microsoft Visual Basic for Applications Extensibility”。
3. 向 Form1 中添加一个 CommandButton。
 Private Sub Command1_Click()
       ' Start Excel
       Dim xlapp As Object 'Excel.Application
       Set xlapp = CreateObject("Excel.Application")

       ' Make it visible...
       xlapp.Visible = True

       ' Add a new workbook
       Dim xlbook As Object 'Excel.Workbook
       Set xlbook = xlapp.Workbooks.Add

       ' Add a module
       Dim xlmodule As Object 'VBComponent
       Set xlmodule = xlbook.VBProject.VBComponents.Add(1) 'vbext_ct_StdModule

       ' Add a macro to the module...
       Dim strCode As String
       strCode = _
          "sub MyMacro()" & vbCr & _
          "   msgbox ""Inside generated macro!!!"" " & vbCr & _
          "end sub"
       xlmodule.CodeModule.AddFromString strCode


       ' Run the new macro!
       xlapp.Run "MyMacro"

       ' ** Create a new toolbar with a button to fire macro...
       ' Add a new toolbar...
       Dim cbs As Object 'CommandBars
       Dim cb As Object 'CommandBar
       Set cbs = xlapp.CommandBars
       Set cb = cbs.Add("MyCommandBar", 1, , True) '1=msoBarTop
       cb.Visible = True

       ' Make it visible & add a button...
       Dim cbc As Object 'CommandBarControl
       Set cbc = cb.Controls.Add(1) '1=msoControlButton

       ' Assign our button to our macro
       cbc.OnAction = "MyMacro"

       ' Set text...
       cbc.Caption = "Call MyMacro()"

       ' Set Face image...
       ' 51 = white hand
       ' 25 = glasses
       ' 34 = ink dipper
       ' etc...
       cbc.FaceId = 51

       ' Pause so you can inspect results...
       MsgBox "All done, click me to continue...", vbMsgBoxSetForeground

       ' Remember to release module
       Set xlmodule = Nothing

       ' Clean up
       xlbook.Saved = True
       xlapp.Quit
      End Sub

【EXECL】 通过VB 宏定义添加自定义函数

【EXECL]】VB 宏定义记录如何在execl里通过vb加入一个宏定义,此宏定义可以关联到我们自定义的vb function,这样就可以实现vb对execl 表格的控制。 环境:exec...
  • standback
  • standback
  • 2015年04月08日 11:25
  • 1394

VC宏定义 及常用宏定义说明

END_CATCH    END_CATCH    说明:    标识最后的CATCH或AND_CATCH块的末尾。    END_MESSAGE_MAP    END_...
  • wzszwj
  • wzszwj
  • 2014年09月23日 10:44
  • 1766

vb函数使用笔记

Ucase把字符串中小写字母转换为大写字母;Lcase把字符串中的大写字母转换为小写字母。例如text1=Ucase(text1)...
  • LSSSsunny
  • LSSSsunny
  • 2018年01月20日 20:21
  • 9

宏定义 使用技巧总结

我在写代码的时候喜欢使用宏,不仅使代码看起来整洁,而且用好了还能极大的减轻编码的工作量,但是如果使用不当的话,出了问题查找起来就就非常的难了,下面的总结大部分是从网上看到的,也有一些是我自己在工作中总...
  • zhu2695
  • zhu2695
  • 2013年06月23日 16:18
  • 1282

【EXECL】 通过VB 宏定义添加自定义函数

【EXECL]】VB 宏定义记录如何在execl里通过vb加入一个宏定义,此宏定义可以关联到我们自定义的vb function,这样就可以实现vb对execl 表格的控制。 环境:exec...
  • standback
  • standback
  • 2015年04月08日 11:25
  • 1394

VB操作EXCEL文件大全

Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Workshe...
  • laotou99
  • laotou99
  • 2013年10月23日 10:31
  • 17918

什么是宏那?本人还不能讲出来,但说明一个具体的宏很容易,如果说把字体的背景色设为黄色就是宏的话,是不是很容易理解。下面以Excel为例,讲一下宏的有关知识.        Excel之所以强大的原因之...
  • wrs120
  • wrs120
  • 2016年11月24日 09:20
  • 362

Android.mk中添加宏定义

在Boardconfig.mk 中添加一个 IS_FLAG := true 由于Boardconfig.mk和各目录的Android.mk是相互关联的 所以我们...
  • liushuimpc
  • liushuimpc
  • 2014年09月09日 20:12
  • 302

通过java调用VBS,再用VBS执行Excel中的宏的例子

(一)  首先需要降低客户端及服务器端对于Excel的宏的安全级别的要求,按照下述的图示进行操作: (1)进入宏的安全级别设置功能   (2) 降低宏的安全级别 ...
  • wei_ya_wen
  • wei_ya_wen
  • 2013年04月09日 13:51
  • 1294

vb读取WPS的EXCEL文档并另存为其他

Dim xlApp Dim xlApp2 Dim xlBook Dim xlBook2 Dim xlSheet Dim xlSheet2 Dim getPath Dim savePath...
  • sofeien
  • sofeien
  • 2014年10月13日 15:20
  • 1907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在 VB 中以编程方式创建并调用 Excel 宏
举报原因:
原因补充:

(最多只允许输入30个字)