VBA
勾吴江南
志异征诛,三让两家王朝;
功同开辟,一桮万古江南。
展开
-
向Excel文档中嵌入VBA控件和UserForm并显示
实现环境:Visual Studio 2010, Excel 2010, VSTO 4.0在文档中嵌入一个Commandbutton点击它会显示一个UserForm,UserForm上有一个CommandButton点击会弹出消息框然后CommandButton的Caption改变。当UserForm关闭是文档中的CommandButton的Caption改变。VB.NET:Imp原创 2011-12-22 13:09:33 · 4838 阅读 · 0 评论 -
关于修改SlideMaster的问题
有用户咨询一下问题:Sub edtMastr() Dim strNewFoot As String strNewFoot = InputBox(prompt:="Enter the revision number.", _ Title:="Revision", Default:="0") If strNewFoot = "0" Or strNe原创 2012-07-25 14:19:36 · 2828 阅读 · 0 评论 -
在Word文档中迭代CustomXmlDocument
以下代码是一个VBA Form中的,用来迭代CustomXmlDocument。Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)End SubPrivate Sub UserForm_Activate() Dim oCustXMLPart As CustomXMLPart Dim oNode As Cu原创 2012-07-31 10:35:19 · 1127 阅读 · 0 评论 -
如何在被保护的工作表(Worksheet)中使用Group Outlining
首先,我们要在工作表没有处于被保护状态前设定好Outlining Group。如图:然后运下以VBA工程来保护这个Worksheet。Sub test() Dim xlSheet As Worksheet Set xlSheet = ActiveWorkbook.ActiveSheet xlSheet.Protect "[你的密码]"原创 2012-08-16 10:31:25 · 2100 阅读 · 0 评论 -
VBA Word CustomXMLPart 中在指定的Node"前添加Node
网上我看见有人想用InsertNodeBefore来实现这个想法。代码如下:Sub HowDoesInsertNodeBeforeWork()Dim oCXPart As CustomXMLPartDim oCXNode As CustomXMLNodeDim strXML As StringstrXML = "" _ & "" _ & "Ham原创 2012-11-26 17:29:56 · 1165 阅读 · 0 评论 -
一个调用Shell的VBA程序
这个程序很强大但是如果参数错了同样要出问题,这里提供一个示例:=ShellAndWait("cmd",1000,4,2) 结果应为0Option ExplicitOption Compare Text ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''转载 2012-11-28 10:36:06 · 3383 阅读 · 0 评论 -
在Word 中用C#查找Wingdings符号
在Word我们通常在VBA或VB.NET环境下以如下方式查找Wingdings符号: Dim wdApp As Word.Application = Globals.ThisDocument.Application Dim wdDoc As Word.Document = wdApp.ActiveDocument Dim wdRange As Wo原创 2012-12-31 15:10:31 · 2331 阅读 · 0 评论 -
动态内容控件应用(一)
例程目的:在一个表格中,当选择"None"前的CheckBox后,表格中的其他CheckBox会消失(以防错选)。当取消选择后CheckBox会重新出现。如图:说明:此前必须将"None"前CheckBox的Title设定为"None"。Option ExplicitPrivate Sub Document_ContentControlOnEnter(ByVal Con原创 2013-01-24 13:06:33 · 942 阅读 · 0 评论 -
Office 2010下VBA Addressof的应用
在VBA中Addressof不能在Class或Form中使用,只有Module模式下才能使用Addressof以面是一个计时器的例子:Form1中代码:Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As LongPrivate Sub Comm原创 2013-01-14 10:47:27 · 2962 阅读 · 0 评论 -
在Excel 中存在两种ListBox
在Excel中存在着Excel.ListBox和MsForms.ListBox两种ListBox。其中Excel.ListBox是隐藏的,你在ObjectView窗体中是不可见的(如果你想看到这个类请在ObjectView窗体上点击右键选择"Show Hidden Members"/”显示隐含成员“)。在Excel的VBA项目中这个隐藏的Excel.ListBox被视为ListBox所指向的类原创 2013-01-31 14:53:42 · 2210 阅读 · 0 评论 -
VBA隐藏Word表格行
Sub test() ActiveDocument.Tables(1).Rows(2).Range.Font.Hidden = TrueEnd Sub文档中的第一个表格的第二行将被隐藏。欢迎访问《许阳的红泥屋》原创 2012-08-08 11:51:48 · 1728 阅读 · 0 评论 -
Outlook 2007 添加Quick Part
Sub InsertQuickPart(strPartName As String) Dim objOL As Outlook.Application Dim objDoc As Word.Document Dim objWord As Word.Application Dim objSel As Word.Selection Dim objETemp As原创 2012-08-07 16:08:06 · 898 阅读 · 0 评论 -
一个统计Word文档中行数的VBA例程
这是一个计算Word中文档行数的例程(表格中的行数不算)。 Sub test() Dim i As Integer Dim t As Table i = ActiveDocument.range.ComputeStatistics(wdStatisticLines) For Each t In ActiveDocument.Tables原创 2012-07-02 19:23:13 · 4781 阅读 · 1 评论 -
VBA抓取屏幕
需要说明的是 关于"user32"下被调用函数的声明,私用常量的声明必需放在VBA代码的开头,否则代码不会运行。抓取活动窗口的Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _ bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As原创 2011-12-14 10:45:55 · 2306 阅读 · 0 评论 -
在Outlook的VBA工程中慎用OOM做为参数
在Outlook的VBA中只有两个地方可以用OOM(Outlook Object Model)做为参数。ThisOutlooksession。在rule中跑的Sub。除些之外使用OOM做为参数会引发424错误。如果你的VBA不是在允许用OOM做为参数的范围内Sub或Function请使用EntryID做为参数传递Item或MAPIFolder。原创 2012-01-03 13:44:16 · 668 阅读 · 0 评论 -
在Outlook的联系人文件夹下能否创建同名联系人?
答案是肯定的:可以创建同名甚至是同名同Email地址的联系人。我在联系人文件夹下创建的一个Test文件夹用来存放测试所创建的联系人。大家有兴趣可以试试。Sub AddNewContact() Dim objNameSapce As Outlook.NameSpace Dim objMAPIFolder1 As Outlook.MAPIFolder Dim obj原创 2012-01-04 13:57:39 · 900 阅读 · 0 评论 -
VBA调用Outlook2010 Ribbon上按钮的命令
Sub ExecuteRibbonButton() Dim Item As Outlook.MailItem Set Item = Application.ActiveExplorer().Selection(1) Item.GetInspector.Display Item.GetInspector.CommandBars.ExecuteMso ("Mo原创 2012-03-02 15:37:56 · 2496 阅读 · 0 评论 -
VBA 解析Color的RGB值
在VBA中颜色是以OleColor的形式存在的,如果想要RGB的值需要经过一定的装换。代码如下:Sub ColorAlert(Color As Variant) Dim R%, G%, B% R = Color Mod 256 G = Color \ 256 Mod 256 B = Color \ 256 \ 256 Mod 256原创 2012-04-24 13:16:47 · 7696 阅读 · 1 评论 -
VBA 读写ini文件
在VBA中必须通过调用Win32 API来实现Ini文件读写。Option Explicit 'read Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationNam原创 2012-04-23 11:12:27 · 4373 阅读 · 0 评论 -
Word 下取消高亮度显示
以下VBA代码会高亮度显示“Microsoft Word”Sub HighLight()Dim rang As RangeDim fnd As FindSet rang = ActiveDocument.RangeSet fnd = rang.Findfnd.Text = "Microsoft Word"fnd.MatchWholeWord = Truefnd.HitHighl原创 2012-06-22 14:34:00 · 6392 阅读 · 1 评论 -
当宏打开Word文档时DocumentOpen事件不触发的问题分析
DocumentOpen事件是一个Word.Application级的事件。在能触发这个事件前我们必须先订阅这个事件。一般情况下我们会在Add-in的ThisAddIn_Startup方法中订阅这个事件(在Document-level应用中我们会在ThisDocument_Startup方法中订阅这个事件)。所以如果要事件被触发就必须满足”ThisAddIn_Startup”或”ThisDocum原创 2012-06-25 15:39:38 · 2584 阅读 · 0 评论 -
Outlook 2010 从磁盘读取一个HTML文件作为Email的Body
Sub ReadHTMLToMailBody() Dim objMailItem As Outlook.MailItem Dim objFileSystem As Object Dim objFileInfo As Object Dim objStream As Object Dim strSourceCode As String Set原创 2011-11-30 14:21:15 · 2389 阅读 · 0 评论 -
Outlook 2010中添加自定义Form并使用VB代码处理事务的示例
在Outlook中用户能在不同层次上定义一些自定义的Form来方便Outlook中的一些具有自己个性的事务的处理。本示例将重现这个开发过程。在开始重现前我们先做如下约定以保证示例能被正确理解:1. 你已经熟知Custom Form与Organizational Forms Library(企业窗体),Personal FormsLibrary(个人窗体),Outlook Fo原创 2013-03-23 19:11:28 · 2494 阅读 · 0 评论