VBA程序设计(实例精讲)

更新时间:2024-03-29 01:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈阳建筑大学

第2章VBA程序设计

2.1工作簿和工作表

一、创建和打开工作簿

Workbooks.Add创建一个新的工作簿

SetNewBook=Workbooks.Add建工作簿,用对象变量表示 NewBook.SaveAsFilename:=\工作簿另存为 Workbooks.Open(\打开工作簿

二、引用工作表

Worksheets(1).Activate激活第一张工作表 Sheets(4).Activate激活四张工作表

Worksheets(\激活指定的工作表 Sheets(\激活图表“Chart1”

2.2单元格和区域

一、引用单元格和区域

1.用A1样式记号引用单元格和单元格区域

表2.1使用Range属性的A1样式引用示例

引用 Range(\Range(\Range(\Range(\Range(\Range(\Range(\Range(\Range(\Sheets(\

含义 单元格A1 从单元格A1到单元格B5的区域 多块选定区域 A列 第一行 从A列到C列的区域 从第一行到第五行的区域 第1、3和8行 A、C和F列 【例2.6】将工作表“Sheet1”中单元格区域A1:D5的字体设置为加粗。

2.用编号引用单元格

【例2.7】将Sheet1上的单元格A6的Value属性设置为10 Worksheets(\

【例2.9】清除活动工作簿中Sheet1上的所有单元格的内容

Worksheets(\

【例2.10】假设工作簿中Sheet1的A列是员工姓名(不超过50人),Sheet2的A列是员工姓名、B列是对应的电话号码。现在需将所有员工的电话号码填写到Sheet1中的B列(注:Sheet1中姓名“李三”在Sheet2中可能为“李三”,中间没有空格)。

1 / 20

沈阳建筑大学

3.引用行和列

【例2.11】将Sheet1上第一行单元格区域的Font对象Bold属性设置为True。 Worksheets(\

表2.2Rows和Columns属性的应用示例

引用 Rows(1) Rows Columns(1) Columns(\含义 第一行 工作表上所有的行 第一列 第一列 Columns 工作表上所有的列 【例2.12】将活动工作表上的第一行、第三行和第五行的字体设置为加粗。 SetmyUn=Union(Rows(1),Rows(3),Rows(5)) myUn.Font.Bold=True

4.用快捷记号引用单元格

【例2.13】将工作表“Sheet1”的单元格区域“A1:B5”内容清除。 Worksheets(\

5.引用命名区域

【例2.14】将当前工作表中名为“AA”的单元格区域设置为30。

[AA].Value=30

【例2.15】用GoTo方法激活工作簿“Book1.xls”,选定区域“AA”,然后清除该区域内容。 Application.GotoReference:=\Selection.ClearContents

【例2.16】用ForEach...Next循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过25,就将该单元格的颜色更改为黄色。 ForEachcInRange(\Ifc.Value>25Then

c.Interior.ColorIndex=27 EndIf Nextc

6.相对于其他单元格来引用单元格

【例2.17】将位于活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。 ActiveCell.Offset(1,3).Font.Underline=xlDouble

7.用Range对象引用单元格

【例2.18】将Sheet1上的单元格区域A1:D5赋予该变量,随后用该变量代替该区域对象,填充随机函数。

SetmyRange=Worksheets(\myRange.Formula=\

2 / 20

沈阳建筑大学

8.引用多个单元格区域

【例2.19】清除当前工作表上三个区域的内容。 Range(\

Range(\【例2.20】将组合区域的字体设置为加粗。 Setr1=Sheets(\Setr2=Sheets(\SetmyMR=Union(r1,r2) myMR.Font.Bold=True

【例2.21】计算选定区域中的数目,如果有多个区域,就显示一则警告消息。 IfSelection.Areas.Count>1Then MsgBox\请不要选择多个区域!\EndIf

二、在单元格区域中循环

【例2.22】将单元格区域C1:C20所有绝对值小于10的数字都设置红色。 ForCnt=1To20

SetcurC=Worksheets(\IfAbs(curC.Value)<10Then curC.Font.ColorIndex=3 NextCnt

求区域末尾行号常用的方法:

r=Range(\求A1单元格数据区末尾行号 r=Cells(1,1).End(xlDown).Row'求A1单元格数据区末尾行号 r=Range(\求A列数据区末尾行号 r=Cells(65536,1).End(xlUp).Row'求A列数据区末尾行号 r=Columns(1).End(xlDown).Row'求A列数据区末尾行号

求区域末尾列号常用的方法:

c=Range(\求A1单元格数据区末尾列号 c=Cells(1,1).End(xlToRight).Column'求A1单元格数据区末尾列号 c=Cells(1,256).End(xlToLeft).Column'求第1行数据区末尾列号 c=Rows(1).End(xlToRight).Column'求第1行数据区末尾列号

【例2.23】将单元格区域A1:D10所有绝对值小于10的数字都设置为红色。 ForEachcInWorksheets(\IfAbs(c.Value)<10Then c.Font.ColorIndex=3 Next

【例2.24】将活动单元格区域所有绝对值小于10的数字都设置为红色。 ForEachcInActiveCell.CurrentRegion.Cells IfAbs(c.Value)<10Then c.Font.ColorIndex=3 Next

3 / 20

沈阳建筑大学

三、选定和激活单元格

1.使用Select方法和Selection属性

【例2.25】将A1:B1单元格中的内容加粗。 Range(\Selection.Font.Bold=True 也可以用下面语句: Range(\

2.选定活动工作表上的单元格

【例2.26】将Sheet1中的一行复制到Sheet2上。 Worksheets(\Worksheets(\

Worksheets(\Worksheets(\

3.激活选定区域内的单元格

【例2.27】选定一个区域,激活区域内的一个单元格,但并不改变选定区域。 Range(\Range(\

四、处理三维区域

【例2.28】设置三维单元格区域的边框格式。 Sheets(Array(\Range(\

Selection.Borders(xlBottom).LineStyle=xlDouble

【例2.29】用FillAcrossSheets方法将Sheet2上指定区域的格式和内容复制到该工作簿中所有工作表上的相应区域中。

Worksheets.FillAcrossSheets(Worksheets(\

五、处理活动单元格

【例2.30】使单元格B5成为活动单元格,然后将其字体设置为加粗。 Worksheets(\ActiveCell.Font.Bold=True

【例2.31】在选定区域内的活动单元格中插入文本,然后将活动单元格右移一格,但并不更改选定区域。 Range(\ActiveCell.Value=\姓名\ActiveCell.Offset(0,1).Activate

【例2.32】将选定区域扩充到与活动单元格相邻的包含数据的单元格中。 ActiveCell.CurrentRegion.Select

其中,CurrentRegion属性返回由空白行和空白列所包围的单元格区域。

范例2-1从区域中删除重复的内容

在Excel当前工作表B列存放一些数据,现要列出这些数据互不重复的值,

4 / 20

沈阳建筑大学

放到D列。

①建函数UnqV

②编写子程序nodupa

范例2-2在Excel工作表列出指定文件夹中所有文件的目录信息。

①进入VBE,在“工具”菜单中选择“引用”项,在“引用”对话框中选中“MicrosoftScriptingRuntime”项。 ②建立子程序“列文件目录”

范例2-3自动生成年历

子程序GenerateCalendar(分析)

2.3工作表函数与图形

一、在VBA中使用Excel工作表函数 1.在VBA中调用工作表函数

【例2.33】使用Min工作表函数求出区域中的最小值。 SetmyR=Worksheets(\answer=Application.WorksheetFunction.Min(myR) MsgBoxanswer

注意:VBA函数和Excel工作表函数可能同名,但作用和引用方式是不同的。

2.在单元格中插入工作表函数

【例2.34】将RAND(随机数)工作表函数赋给Sheet1上A1:B3区域的Formula属性。 Worksheets(\

【例2.35】下面程序使用工作表函数Pmt来计算住宅抵押贷款的支付额。 SubFml()

StaticlAmt,lInt,lTrm

lAmt=Application.InputBox(Prompt:=\贷款额:\lInt=Application.InputBox(Prompt:=\年利率:\lTrm=Application.InputBox(Prompt:=\年限:\lPmt=Application.WorksheetFunction.Pmt(lInt/1200,lTrm*12,lAmt) MsgBox\月支付额:\EndSub

二、处理图形对象 1.设置图形的属性

【例2.36】设置指定图形的前景色。

Worksheets(1).Shapes(1).Fill.ForeColor.RGB=RGB(255,0,0)

2.同时对多个图形应用属性或方法

对多个选定图形通过构造ShapeRange集合,并直接对该ShapeRange集合应用适当的属性和方法,可执行同一操作。

5 / 20

沈阳建筑大学

也可在图形的Shapes集合或ShapeRange集合中循环,对每个单独的Shape对象应用适当的属性和方法来执行该操作。

3.创建ShapeRange集合

【例2.37】创建选定的图形ShapeRange对象,然后填充绿色。 Set sr=Selection.ShapeRange sr.Fill.ForeColor.SchemeColor=17 注:先选中图形

4.对ShapeRange集合应用属性或方法

【例2.38】假设在当前工作表上建立了两个图形“Sp1”和“Sp2”。下面程序构造包含图形“Sp1”和“Sp2”的图形区域,并对这些图形应用渐变填充格式。 SetmyD=WorkSheets(1)

SetmyR=myD.Shapes.Range(Array(\

myR.Fill.PresetGradientmsoGradientHorizontal,1,msoGradientBrass

5.在Shapes集合或ShapeRange集合中循环

【例2.39】在当前工作表上对所有图形进行循环,更改每个自选图形的前景色。 SetmyD=WorkSheets(1) ForEachshInmyD.Shapes

Ifsh.Type=msoAutoShapeThen sh.Fill.ForeColor.RGB=RGB(255,0,0) sh.Fill.Visible=msoTrue EndIf Next

【例2.40】对当前活动窗口中所有选定的图形构造一个ShapeRange集合,并设置每个选定图形的填充色。

ForEachshInActiveWindow.Selection.ShapeRange sh.Fill.Visible=msoTrue sh.Fill.Solid

sh.Fill.ForeColor.SchemeColor=57 Next

注:先选中图形

范例2-4多元一次方程组求解

①界面初始化程序设计 ②求解方程组程序设计

计算系数矩阵a的逆矩阵(用工作表函数MInverse)

逆矩阵与向量b进行矩阵相乘得到向量x(用工作表函数MMult) 求矩阵行列式的值(用工作表函数MDeterm)

范例2-5创建动态三维图表

①选中A3:D9区域,单击“图表向导”按钮,创建“三维柱形图”,插入当前工作表。 ②录制新宏:在绘图区快捷菜单上选择“设置三维视图格式”项,设置上下仰角、左右

6 / 20

沈阳建筑大学

旋转值均为0,得到有关的语句。 ③编写子程序“动态效果

2.4Word文档操作

一、使用文本 1.将文本插入文档

【例2.41】在活动文档的末尾插入字符“###”。 ActiveDocument.Content.InsertAfterText:=\

【例2.42】在所选内容之前或光标位置之前插入字符“***”。 Selection.InsertBeforeText:=\

2.从文档返回文本

【例2.43】返回选定的文本。

strT=Selection.Text

【例2.44】返回活动文档中的第一个单词。

sFW=ActiveDocument.Words(1).Text

【例2.45】删除Word当前文档选定部分的多余空格。 str_in=Trim(Selection.text) str_out=\

Fori=1ToLen(str_in)

strch=Mid(str_in,i,1)

Ifstrch<>\str_out=str_out&strch EndIf

Nexti

Selection.text=str_out

3.查找和替换

【例2.46】查找并选定文字。 WithSelection.Find .Text=\.Execute EndWith

注:可通过宏录制获得

【例2.47】查找而不选定文字。 WithActiveDocument.Content.Find .Text=\.Forward=True .Execute

If.Found=TrueThen

.Parent.Bold=True EndWith

使用Execute方法的参数,执行结果相同。

7 / 20

沈阳建筑大学

SetmyR=ActiveDocument.Content

myR.Find.ExecuteFindText:=\IfmyR.Find.FoundThen myR.Bold=True

【例2.48】查找并替换文本。 WithSelection.Find .Text=\

.Replacement.Text=\.ExecuteReplace:=wdReplaceAll EndWith

【例2.49】查找并替换格式。 WithActiveDocument.Content.Find .Font.Bold=True

.Replacement.Font.Bold=False

.ExecuteFindText:=\EndWith

4.将格式应用于文本

【例2.50】将格式应用于选定内容。 WithSelection.Font .Name=\楷体_GB2312\.Size=16 EndWith

WithSelection.ParagraphFormat .LineUnitBefore=0.5 .LineUnitAfter=0.5 EndWith

【例2.51】将格式应用于某一区域。

SetrgF=ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(1).Range.Start,_ End:=ActiveDocument.Paragraphs(3).Range.End) WithrgF.Font

.Name=\楷体_GB2312\.Size=16 EndWith

二、使用Word对象 1.选定文档中的对象

【例2.52】选定活动文档中的第一个表格。 ActiveDocument.Tables(1).Select

【例2.53】选定活动文档中的前四个段落。

SetRnP=ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(1).Range.Start,_ End:=ActiveDocument.Paragraphs(4).Range.End) RnP.Select

2.将Range对象赋给变量

8 / 20

沈阳建筑大学

【例】将活动文档中的第一个和第二个单词赋给变量Range1和Range2 SetRange1=ActiveDocument.Words(1) SetRange2=ActiveDocument.Words(2)

【例】将一个Range对象变量的值送给另一个Range对象变量 SetRange2=Range1

【例】创建一个Range1对象的新副本Range2 SetRange2=Range1.Duplicate

3.修改文档的某一部分

【例】将所选内容的第一个单词复制到“剪贴板”。 Selection.Words(1).Copy

【例】将活动文档的第一段复制到“剪贴板”。 ActiveDocument.Paragraphs(1).Range.Copy 【例】设置活动文档中第一个单词为大写。 ActiveDocument.Words(1).Case=wdUpperCase 【例】将当前节的下边距设为0.5英寸。

Selection.Sections(1).PageSetup.BottomMargin=InchesToPoints(0.5) 【例】将活动文档的字符间距设为两倍。

ActiveDocument.Content.ParagraphFormat.Space2

【例2.54】创建一个Range对象,引用活动文档的前10个字符,然后利用该对象设置字符的字号。

SetrgTC=ActiveDocument.Range(Start:=0,End:=10) rgTC.Font.Size=20

4.引用活动文档元素

【例】将边框应用于选定内容的第一段 Selection.Paragraphs(1).Borders.Enable=True

【例2.55】将底纹应用于选定内容中第一张表格的首行。 IfSelection.Tables.Count>=1Then

Selection.Tables(1).Rows(1).Shading.Texture=wdTexture25Percent Else

MsgBox\您选择的区域没有包含表!\

EndIf

【例2.56】将底纹应用于选定内容中每张表格的首行。 DimtblAsTable

IfSelection.Tables.Count>=1Then

ForEachtblInSelection.Tablestbl.Rows(1).Shading.Texture=wdTexture30Percent Nexttbl EndIf

5.处理表格

【例2.57】创建一张表格,插入文字,并应用格式。 SetdocA=ActiveDocument

SettblN=docA.Tables.Add(Range:=docA.Range(Start:=0,End:=0),NumRows:=3,NumColumns:=4)

9 / 20

沈阳建筑大学

C=1

ForEachcelTIntblN.Range.Cells celT.Range.InsertAfter\内容\C=C+1 NextcelT

tblN.AutoFormat

Format:=wdTableFormatColorful2,ApplyBorders:=True,ApplyFont:=True,ApplyColor:=True 【例2.58】在表格单元格中插入文字。

WithActiveDocument.Tables(1).Cell(Row:=1,Column:=1).Range .Delete

.InsertAfterText:=\新内容\EndWith

【例2.59】返回表格单元格中的文字。 Settbl=ActiveDocument.Tables(1) ForEach cel Intbl.Rows(1).Cells Setrng=cel.Range

rng.MoveEndUnit:=wdCharacter,Count:=-1'取消一个非正常字符 MsgBoxrng.Text Nextcel

【例2.60】将表格单元格内容送数组。 DimstrC()AsString

WithActiveDocument.Tables(1).Range Ces=.Cells.Count ReDimstrC(Ces) C=1

ForEachcelIn.Cells Setrng=cel.Range

rng.MoveEndUnit:= wdCharacter,Count:=-1'取消一个非正常字符 strC(C)=rng C=C+1 Nextcel EndWith

6.处理文档

【例2.61】新建文档 SetdocN=Documents.Add WithdocN

.Content.Font.Name=\楷体_GB2312\.SaveAsFileName:=\EndWith

【例2.62】打开文档

Documents.OpenFileName:=\【例2.63】保存文档

Documents(\

10 / 20

沈阳建筑大学

ActiveDocument.SaveAsFileName:=\

【例2.64】关闭文档

Documents(\【例2.65】激活文档 ForEachdocInDocuments

IfInStr(doc.Name,\doc.Activate EndIf Nextdoc

范例2-6Word表格计算

①在Word中建立一个工资表格。 ②编写子程序

2.5控件与窗体

一、在Excel工作表上使用控件 1.“窗体”工具栏控件

①在“窗体”工具栏中单击需要的控件。

②在工作表上拖动鼠标画出一个矩形(控件的大小)。 ③在控件上右击,选择“设置控件格式”。

【例】滚动条控件:“控制”卡,“单元格链接”;复选框控件:“控制”卡,“单元格链接”;给控件改名。

2.“控件工具箱”工具栏控件

设计模式——可以对控件的属性、代码等进行设计。 运行模式——可执行代码,完成相应的动作。

“属性”窗口——设置或显示控件的属性。

“查看代码”——可以进入VBA编辑器环境,查看或编写控件的代码。

3.在工作表上处理控件

【例2.66】向当前工作簿的第一张工作表添加命令按钮。 Worksheets(1).OLEObjects.Add\”, _ Left:=10,Top:=10,Height:=20,Width:=100

【例2.67】滚动工作簿窗口,使CommandButton1位于窗口的左上角。 Sett=Sheet1.CommandButton1.TopLeftCell WithActiveWindow .ScrollRow=t.Row

.ScrollColumn=t.Column EndWith

二、在Word文档中使用控件 1.向文档中添加控件

用“控件工具箱”工具栏

11 / 20

沈阳建筑大学

2.设置控件属性

在设计模式下,打开“属性”窗口。

3.初始化控件

【例2.68】向列表框添加数据。 WithThisDocument.ListBox1 .AddItem\AddItem\.AddItem\.AddItem\EndWith

4.编写事件过程

双击窗体或控件以进入代码编辑环境,再从“过程”下拉列表框内选择事件,然后进行编码。

三、用户窗体 1.创建用户窗体

①选择“工具|宏|VisualBasic编辑器”菜单或用Alt+F11快捷键,打开VBA编辑器。 ②在VBA编辑器中选择工具栏上的“插入用户窗体”按钮或者在“插入”菜单选“用户窗体”项。

③在用户窗体上添加控件。 ④设置控件属性

2.运行用户窗体

在VBA编辑器中选择该窗体,单击“运行”菜单“运行子过程/用户窗体”或工具栏上对应的按钮。用VBA代码显示用户窗体,可用Show方法。 【例】显示名为“UserForm1”的用户窗体 UserForm1.Show

3.代码运行时使用控件值

【例2.69】运行窗体后,在两个文字框中任意输入信息,单击“确定”按钮,两个文字框的内容会被保存到模块的全局变量中,然后卸载用户窗体。再次运行窗体时,保存在模块的全局变量的值会重新显示在文字框中。

①创建一个用户窗体,放两个文字框TextBox1和TextBox2,一个命令按钮cmdOk,设置其Caption属性为“确定”。 ②插入一个模块并在模块中用下面语句声明两个全局变量。 PublicpeID,strRAsString

③双击用户窗体,为Initialize事件编写如下程序: PrivateSubUserForm_Initialize() TextBox1.Text=peID

TextBox2.Text=strR EndSub

④双击命令按钮,为其Click事件编写如下程序:

12 / 20

沈阳建筑大学

PrivateSubCmdOk_Click() peID=TextBox1.Text strR=TextBox2.Text UnloadMe EndSub

【例2.70】新建一个窗体,放置两个按钮和一个文字框控件。按钮的标题分别定义为“显示”和“清除”。单击“显示”按钮,在文字框中显示一行文字,单击“清除”按钮,清除文字框中的文字。 设计:

①进入VBA编辑环境,打开“工程资源管理器”窗口,插入一个用户窗体。 ②在窗体上放置两个命令按钮和一个文字框。

③右击命令按钮,选“属性”,设置Caption属性值为“显示”、“清除”。 ④双击“显示”命令按钮,输入如下代码: Me.TextBox1.SetFocus

Me.TextBox1.Text=\你好!欢迎学习VBA\(可简化) ⑤双击“清除”命令按钮,编写代码如下: Me.TextBox1.Text=\

⑥双击用户窗体,为其Activate事件编写如下代码: Me.Caption=\欢迎!\

运行:

选“运行”菜单的“运行子过程/用户窗体”项,或按F5键。

范例2-7在Word文档中统计指定字符的出现次数

①定义窗体和控件

建一窗体Userform1,设置caption属性为“字符统计”。 在窗体中放置以下控件:

复选框CheckBox1,Caption=“区分大小写”。

文字框TextBox1。

命令按钮CommandButton1,Caption=“统计”。

标签Label1,Caption=“输入您要统计的字符(或汉字):” ②录制代码

光标定位(或选中文档),查找,下一处

③相关知识

Selection.Find.Found()函数为真,说明找到了指定的字符。 ④加工代码

⑤运行运行窗体,输入要统计的字符,单击“统计”按钮。

范例2-8求dic文档中的单词对doc文档的覆盖率

①建立两个Word文档,分别保存为doc.doc和dic.doc文件。

②在dic文档中输入一些常用词汇构成被测试的词汇表。后边将利用VBA程序统计这个词汇表对各类文章的单词覆盖率。

③进入VBA编辑环境,在dic工程中插入一个模块,在模块中建立子程序xnt。

④在dic文档中创建一个自定义工具栏,指定工具栏可用于dic文档(而不是Normal文档),并将前面建立的子程序cnt指定给工具栏按钮。

13 / 20

沈阳建筑大学

⑤打开doc文档,输入或粘贴任意文本文档。该文档是用来进行测试的抽样。 ⑥单击dic自定义工具栏的按钮,执行VBA程序,进行测试,将得到结果。

2.6使用Office命令栏

命令栏——工具栏、菜单栏、快捷菜单。

一、添加和修改工具栏 1.对工具栏作运行时间修改

表2.3命令栏按钮常用的属性和方法

属性或方法 CopyFace PasteFace Id State Style 说明 将指定按钮的图符复制到“剪贴板”上。 将“剪贴板”上的内容粘贴到指定按钮的图符上。 指定代表按钮内置函数的值。 指定按钮的外观或状态。可选值: msoButtonDown、msoButtonMixed、msoButtonUp。 指定按钮图符是显示其图标还是显示其标题。可选值: msoButtonAutomatic、msoButtonIcon、msoButtonCaption、msoButtonIconandCaption、msoButtonIconAndCaptionBelow、msoButtonIconAndWrapCaption、msoButtonIconAndWrapCaptionBelow、OnAction Visible Enabled msoButtonWrapCaption。 指定在用户单击按钮、显示菜单或更改组合框控件的内容时所运行的过程。 指定控件对用户是显示还是隐藏。 使一个命令栏生效或失效。失效的命令栏名不显示在有效命令栏列表中。 【例2.71】在Word中创建包含一个命令按钮的命令栏,用代码改变按钮外观。 Subtest()

SetmyBar=CommandBars.Add(Name:=\myBar.Visible=True

Setoldc=myBar.Controls.Add(Type:=msoControlButton,ID:=23) oldc.OnAction=\EndSub

SubChangeFaces()

Setnewc=CommandBars.FindControl(Type:=msoControlButton,ID:=17) newc.CopyFace

Setoldc=CommandBars(\oldc.PasteFace EndSub

2.添加和修改组合框控件

表2.4组合框常用属性和方法

属性或方法 Add

说明 如果要在命令栏中添加一个组合框控件,可为Type参数指定以下14 / 20

沈阳建筑大学

MsoControlType常量之一: msoControlEdit、msoControlDropdown或msoControlComboBox。 AddItem 在下拉式列表框或组合框的下拉式列表区中添加一个列表项。可为已有列表中的新项指定一个索引号,但其数值不能大于列表中的项目数,否则AddItem方法失败。 Caption Style OnAction 为组合框控件指定标签。如果将Style属性设置为msoComboLabel,那么该标签将在该控件旁显示。 确定指定控件的标题是否显示在该控件旁。该值可设置为MsoComboStyle的以下常量之一:msoComboLabel(显示)或msoComboNormal(不显示)。 指定当用户改变组合框控件的内容时要运行的过程。

【例2.72】在Word自定义工具栏中添加一个组合框,并给该控件指定一个过程。

Subtest()

SetmyBar=CommandBars.Add(Name:=\myBar.Visible=True

SetnewCombo=myBar.Controls.Add(Type:=msoControlComboBox) WithnewCombo .AddItem\

.AddItem\.AddItem\.AddItem\

.Style=msoComboNormal .OnAction=\” EndWith EndSub

二、添加和管理菜单栏、菜单项 1.在运行时间添加菜单栏

【例2.73】在Word或Excel中添加一个不可移动的菜单栏,并将该菜单栏固定在应用程序窗口的右边(替代系统菜单栏)。 Subtest()

SetMenuBar=CommandBars.Add(Name:=\WithMenuBar

.Protection=msoBarNoMove .Visible=True EndWith EndSub

2.在运行时间修改菜单栏表

2.5菜单栏的常用属性和方法

15 / 20

本文来源:https://www.bwwdw.com/article/igkr.html

Top