下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 vba帮助

vba帮助

vba帮助

琼海这边
2008-03-01 0人阅读 举报 0 0 暂无简介

简介:本文档为《vba帮助doc》,可适用于IT/计算机领域

VBA帮助(摘自OfficeVBA帮助)一、VBA入门知识、激活工作簿、创建新工作簿、打开工作簿、用编号引用工作表、用名称引用工作表、将文档保存为Web页、用A样式的记号引用单元格和单元格区域、用编号引用单元格、引用行或列、用快捷记号引用单元格、引用命名单元格区域、按相对于其他单元格的方式来引用单元格、用Range对象引用单元格、引用工作表上的所有单元格、引用若干单元格区域、在单元格区域中循环、选定和激活单元格、处理三维区域、处理活动单元格、在工作表上使用ActiveX控件、在文档中使用ActiveX控件、创建自定义对话框、在窗体上使用MicrosoftOfficeWeb组件、内置对话框参数表、使用MicrosoftExcel对象的事件、在VisualBasic中使用MicrosoftExcel工作表函数、处理形状(图形对象)、在某一MicrosoftOffice应用程序中控制其他MicrosoftOffice应用程序、OLE程序标识符、关于数字签名、启动MicrosoftExcel时不运行“自动执行宏”、焦点二、了解对象、属性、方法和事件、了解对象、属性、方法和事件HYPERLINKl"、Application对象"、Application对象、Workbook对象、Workbooks属性、Range对象、Range属性HYPERLINKl"二"、Cells属性、Caller属性、Offset属性HYPERLINKl"、Rows属性"、Rows属性、Activate事件、Activate、Deactivate事件、Activate方法、WorkbookActivate事件、WindowActivate事件、OnError语句、在工作表上使用ActiveX控件、Add方法(Scenarios集合)、Scenarios集合对象、Add方法(Validation对象)、Validation对象、Validation属性、Open事件、Open方法、Click事件、Close方法HYPERLINKl"、Change事件"、Change事件、Value属性、DblClick事件、SheetBeforeRightClick事件、Select方法、Select事件、Goto方法、Worksheet对象、SheetChange事件、SheetActivate事件、OpenLinks方法HYPERLINKl"、Enabled属性"、Enabled属性三、VBA语法(一)VisualBasic的命名规则、写VisualBasic语句、写声明语句、Dim语句的语法、Activate方法的语法CONTROLInternetHHCtrlCONTROLInternetHHCtrl、Set语句HYPERLINKl"三(一)"、MsgBox函数的语法、选项语句的语法、AddressOf运算符、了解变体、写赋值语句、写可执行的语句、Public语句CONTROLInternetHHCtrlCONTROLInternetHHCtrl、Private语句HYPERLINKl"、使用数组"、使用数组、使用常数、AppActivate语句、Beep语句、Date语句CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、Error语句      HYPERLINKl"三(一)"CONTROLInternetHHCtrl、Exit语句CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、GoSubReturn语句      HYPERLINKl"三(一)"、CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlGoTo语句      CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、Input#语句      CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、Let语句CONTROLInternetHHCtrl      、Load语句      CONTROLInternetHHCtrl、Name语句CONTROLInternetHHCtrl      CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、OnGoSub、OnGoTo语句   CONTROLInternetHHCtrl   CONTROLInternetHHCtrlCONTROLInternetHHCtrl、Open语句   CONTROLInternetHHCtrl   CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、Rem语句   CONTROLInternetHHCtrl   CONTROLInternetHHCtrlCONTROLInternetHHCtrl、Stop语句   CONTROLInternetHHCtrl   CONTROLInternetHHCtrlCONTROLInternetHHCtrl、Time语句      CONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrlCONTROLInternetHHCtrl、WhileWend语句   (二)逻辑语句、IfThenElse语句、使用SelectCase语句、使用ForNext语句、ForEachNext语句、DoLoop语句、With语句(三)过程、写Sub过程、写Function过程、写Property过程四、ActiveX控件、AfterUpdate事件、Click事件、Click事件、命令按钮控件、Accelerator和Caption属性示例、DblClick事件、Error事件、KeyDown和KeyUp事件、KeyPress事件、KeyPress事件示例、MouseDown和MouseUp事件、MouseMove事件、列表框控件、SpinDown和SpinUp事件、SpinDown、SpinUp事件和Delay属性示例、组合框控件、命令按钮控件、标签控件、列表框控件、DataObject对象、MouseMove事件和StartDrag、SetText方法示例、多页控件、选项按钮控件、文本框控件、切换按钮控件、用户窗体窗口一、VBA入门知识、激活工作簿用Activate方法激活工作簿后该工作簿将放在活动窗口中。下述过程激活已打开的工作簿“MyBookxls”。SubMakeActive()Workbooks("MyBookxls")ActivateEndSub、创建新工作簿如果要用VisualBasic创建新的工作簿应使用Add方法。下述过程创建了新工作簿。MicrosoftExcel自动将该工作簿命名为“BookN”其中N是下一个可用的数字。新工作簿将成为活动工作簿。SubAddOne()WorkbooksAddEndSub创建新工作簿的较好的方法是将其赋给一个对象变量。下例中由Add方法返回的Workbook对象赋给了对象变量newBook。然后又设置了newBook的若干属性。使用对象变量可以很容易地控制新工作簿。SubAddNew()SetnewBook=WorkbooksAddWithnewBookTitle="Sales"Subject="Sales"SaveAsfilename:="Salesxls"EndWithEndSub、打开工作簿用Open方法打开一个工作簿时该工作簿将成为Workbooks集合的成员。下述过程打开C盘上“MyFolder”文件夹内的工作簿“MyBookxls”。SubOpenUp()WorkbooksOpen("C:MyFolderMyBookxls")EndSub、用编号引用工作表编号是赋予工作表的连续的数字这些数字的顺序是根据同一类型的工作表的标签位置按由左而右的顺序确定的。下述过程使用Worksheets属性激活活动工作簿上的第一张工作表。SubFirstOne()Worksheets()ActivateEndSub如果要处理所有类型的工作表(工作表、图表、模块表和对话框编辑表)可用Sheets属性。下述过程激活工作簿中的第四张工作表。SubFourthOne()Sheets()ActivateEndSub注意移动、添加或删除工作表时编号顺序将会改变。、用名称引用工作表使用Worksheets属性和Charts属性时可用名称标识工作表。下述语句激活活动工作簿内的不同工作表。Worksheets("Sheet")ActivateCharts("Chart")ActivateDialogSheets("Dialog")Activate可用Sheets属性返回工作表、图表、模块表或对话框编辑表Sheets集合包含了所有这些表。下例激活活动工作簿内的图表“Chart”。SubActivateChart()Sheets("Chart")ActivateEndSub注意嵌入到工作表上的图表是ChartObjects集合的成员而那些位于单独的表上的图表则属于Charts集合。、将文档保存为Web页在MicrosoftExcel中可以将工作簿、工作表、图表、区域、查询表、数据透视表报表、打印区域或自动筛选区域保存到Web页中。也可以直接在Excel中编辑HTML文件。将文档保存为Web页将文档保存为Web页是一个创建并保存HTML文件及其支持文件的过程。要完成此过程可使用SaveAs方法如下例所示此示例将活动工作簿保存为文件“C:Reportsmyfilehtm”。ActiveWorkbookSaveAsFilename:="C:Reportsmyfilehtm",FileFormat:=xlHTML自定义Web页通过设置DefaultWebOptions对象和WebOptions对象的属性用户可以自定义HTML文档的外观、内容、浏览器支持、编辑支持、图形格式、屏幕分辨率、文件组织和编码。DefaultWebOptions对象中包含应用程序级别的属性。而任何具有相同名称的工作簿级别的设置(包含在WebOptions对象中)会覆盖这些设置。设置完属性后可以使用Publish方法将工作簿、工作表、图表、区域、查询表、数据透视表报表、打印区域或自动筛选区域保存到Web页中。下例设置了一些应用程序级别的属性然后又设置了活动工作簿的AllowPNG属性而此设置将覆盖应用程序级别的默认设置。最后本示例将该区域保存为“C:ReportsQhtm”。WithApplicationDefaultWebOptionsRelyonVML=TrueAllowPNG=TruePixelsPerInch=EndWithWithActiveWorkbookWebOptionsAllowPNG=FalseWithPublishObjects()FileName="C:ReportsQhtm"PublishEndWithEndWith也可以直接将文件保存到Web服务器上。下例将一个区域保存到Web服务器上假定该Web页的URL地址为http:examplehomepagecomannualreporthtm。WithActiveWorkbookWithWebOptionsRelyonVML=TruePixelsPerInch=EndWithWithPublishObjects()FileName="http:examplehomepagecomannualreporthtm"PublishEndWithEndWith在MicrosoftExcel中打开HTML文档要在Excel中编辑HTML文档请首先使用Open方法打开该文档。下例打开文件“C:ReportsQhtm”以便进行编辑。WorkbooksOpenFilename:="C:ReportsQhtm"打开文件后就可以通过设置DefaultWebOptions和WebOptions对象的属性自定义该HTML文档的外观、内容、浏览器支持、编辑支持、图象格式、屏幕分辨率、文件组织和编码。、用A样式的记号引用单元格和单元格区域可在Range方法中以A样式的记号引用单元格和单元格区域。下述Sub过程将单元格区域A:D的字体设置为加粗。SubFormatRange()Workbooks("Book")Sheets("Sheet")Range("A:D")FontBold=TrueEndSub下表演示了用于Range方法的一些A样式的引用。引用含义Range("A")单元格“A”Range("A:B")从单元格“A”到单元格“B”的区域Range("C:D,G:H")多块的选定区域Range("A:A")“A”列Range(":")第一行Range("A:C")从“A”列到“C”列的区域Range(":")从第一行到第五行的区域Range(":,:,:")第、和行Range("A:A,C:C,F:F")“A”列、“C”列和“F”列、用编号引用单元格可用Cells属性及行号和列标引用单个单元格。该属性返回代表单个单元格的Range对象。下例中Cells(,)返回工作表“Sheet”上的单元格“A”然后将Value属性设置为。SubEnterValue()Worksheets("Sheet")Cells(,)Value=EndSub因为可用变量代入单元格索引值所以Cells属性非常适于在单元格区域中循环如下例所示。SubCycleThrough()DimcounterAsIntegerForcounter=ToWorksheets("Sheet")Cells(counter,)Value=counterNextcounterEndSub注意如果要同时对某一区域内的所有单元格修改属性或应用方法可用Range属性。有关的详细内容请参阅“用A样式的记号引用单元格和单元格区域”。、引用行或列可用Rows属性或Columns属性处理整行或整列。这两个属性返回代表单元格区域的Range对象。下例中用Rows()返回工作表“Sheet”上的第一行然后将该行的Font对象的Bold属性设置为True。SubRowBold()Worksheets("Sheet")Rows()FontBold=TrueEndSub下表演示了使用Rows属性和Columns属性的一些行和列的引用。引用含义Rows()第一行Rows工作表上所有的行Columns()第一列Columns("A")第一列Columns工作表上所有的列如果要同时处理若干行或列可先创建一个对象变量然后用Union方法把对Rows属性或Columns属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。SubSeveralRows()Worksheets("Sheet")ActivateDimmyUnionAsRangeSetmyUnion=Union(Rows(),Rows(),Rows())myUnionFontBold=TrueEndSub、用快捷记号引用单元格可用方括号将A样式的引用或命名区域的名称括起来作为Range属性的快捷方式。这样就不必键入“Range”和引号如下述各例所示。SubClearRange()Worksheets("Sheet")A:BClearContentsEndSubSubSetValue()MyRangeValue=EndSub、引用命名单元格区域用名称比用A样式的记号更容易标识单元格区域。如果要命名选定的单元格区域单击公式栏左端的名称框键入名称然后按ENTER键。引用命名单元格区域下例引用了工作簿“MyBookxls”中的单元格区域“MyRange”。SubFormatRange()Range("MyBookxls!MyRange")FontItalic=TrueEndSub下例在工作簿“Reportxls”中引用了特定于工作表的单元格区域“Sheet!Sales”。SubFormatSales()Range("ReportxlsSheet!Sales")BorderAroundweight:=xlthinEndSub如果要选定命名的单元格区域可用GoTo方法该方法将激活指定区域所在的工作簿和工作表然后选定该区域。SubClearRange()ApplicationGotoReference:="MyBookxls!MyRange"SelectionClearContentsEndSub下例显示了在活动工作簿中对上述同一过程的写法。SubClearRange()ApplicationGotoReference:="MyRange"SelectionClearContentsEndSub在命名区域中的单元格上循环下例用ForEachNext循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过limit的值就将该单元格的颜色改为黄色。SubApplyColor()ConstlimitAsInteger=ForEachcInRange("MyRange")IfcValue>limitThencInteriorColorIndex=EndIfNextcEndSub、按相对于其他单元格的方式来引用单元格处理位于相对于其他单元格的某一位置单元格的常用方法是使用Offset属性。下例中将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线。SubUnderline()ActiveCellOffset(,)FontUnderline=xlDoubleEndSub注意可用Offset属性而不用绝对引用方式来记录宏。指向“工具”菜单内的“录制宏”子菜单然后单击“使用相对引用”命令即可。如果要在单元格区域中循环可在循环中将Cells属性和变量共用。下例用从到的值以为步长填充第三列的前个单元格。变量counter用作Cells属性的行号。SubCycleThrough()DimcounterAsIntegerForcounter=ToWorksheets("Sheet")Cells(counter,)Value=counter*NextcounterEndSub、用Range对象引用单元格将对象变量设置为Range对象即可用变量名方便地操纵该单元格区域。下述过程创建了对象变量myRange然后将活动工作簿中工作表“Sheet”上的单元格区域“A:D”赋予该变量。随后的语句用该变量代替该区域对象以修改该区域的属性。SubRandom()DimmyRangeAsRangeSetmyRange=Worksheets("Sheet")Range("A:D")myRangeFormula="=RAND()"myRangeFontBold=TrueEndSub、引用工作表上的所有单元格如果对工作表应用Cells属性时不指定索引该属性将返回代表工作表上所有单元格的Range对象。下述Sub过程清除活动工作簿中工作表“Sheet”上的所有单元格的内容。SubClearSheet()Worksheets("Sheet")CellsClearContentsEndSub、引用若干单元格区域使用适当的方法可以很容易地同时引用若干单元格区域。可用Range和Union方法引用任意组合的单元格区域用Areas属性可引用工作表上选定的一组单元格区域。使用Range属性使用Range属性时在两个或多个引用之间加上逗号就可以引用多重区域。下例清除了工作表“Sheet”上三个单元格区域的内容。SubClearRanges()Worksheets("Sheet")Range("C:D,G:H,B:D")ClearContentsEndSub命名区域使得用Range属性处理多重区域更为容易。下例可在三个命名区域处于同一工作表时运行。SubClearNamed()Range("MyRange,YourRange,HisRange")ClearContentsEndSub使用Union方法用Union方法可将多个单元格区域组合到一个Range对象中。下例创建了名为myMultipleRange的Range对象并将其定义为单元格区域“A:B”和“C:D”的组合然后将该组合区域的字体设置为加粗。SubMultipleRange()Dimr,r,myMultipleRangeAsRangeSetr=Sheets("Sheet")Range("A:B")Setr=Sheets("Sheet")Range("C:D")SetmyMultipleRange=Union(r,r)myMultipleRangeFontBold=TrueEndSub使用Areas属性可用Areas属性引用选定的单个单元格区域或多块的选定区域集合。下述过程计算选定区域内的块数目如果选定区域中有多个块就显示警告消息。SubFindMultiple()IfSelectionAreasCount>ThenMsgBox"Cannotdothistoamultipleselection"EndIfEndSub、在单元格区域中循环使用VisualBasic时经常需要对某一区域内的每个单元格运行同一段语句。为达到这一目的可将循环语句和标识每个单元格的一个或多个方法组合使用每循环一次就对一个单元格执行一次操作。在单元格区域中循环的一种方法是使用ForNext循环语句和Cells属性。使用Cells属性时可用循环计数器(或其他变量或表达式)作为单元格编号。下例中变量counter代替了行号。此过程将在单元格区域“C:C”中循环将所有绝对值小于的数字都设置为(零)。SubRoundToZero()Forcounter=ToSetcurCell=Worksheets("Sheet")Cells(counter,)IfAbs(curCellValue)<ThencurCellValue=NextcounterEndSub在单元格区域中循环的另一种简便方法是使用ForEachNext循环语句和由Range方法返回的单元格集合。在每一次循环过程中VisualBasic都为下一次循环所用的单元格自动设置一个对象变量。下述过程在单元格区域“A:D”中循环将所有绝对值小于的数字都设置为(零)。SubRoundToZero()ForEachcInWorksheets("Sheet")Range("A:D")CellsIfAbs(cValue)<ThencValue=NextEndSub如果不知道要循环的单元格区域的确切边界可用CurrentRegion属性返回活动单元格周围的区域。例如下述过程在工作表上运行时将在活动单元格周围的区域内循环将所有绝对值小于的数字都设置为(零)。SubRoundToZero()ForEachcInActiveCellCurrentRegionCellsIfAbs(cValue)<ThencValue=NextEndSub、选定和激活单元格使用MicrosoftExcel时通常要先选定单元格或单元格区域然后执行某一操作如设置单元格的格式或在单元格中输入数值。但在VisualBasic中在修改单元格之前通常不必先选定它们。例如如果要用VisualBasic在单元格“D”中输入公式就不需要先选定单元格“D”而只需返回该Range对象然后将该对象的Formula属性设置为所需的公式如下例所示。SubEnterFormula()Worksheets("Sheet")Range("D")Formula="=SUM(D:D)"EndSub如果要查阅使用其他方法不选定单元格就控制它们的示例请参阅“如何引用单元格和区域”。使用Select方法和Selection属性Select方法激活工作表和工作表上的对象而Selection属性返回代表活动工作簿中活动工作表上的当前选定区域的对象。在使用Selection属性之前必须先激活工作簿用Select方法激活或选定工作表然后再选定单元格区域(或其他对象)。宏记录器经常创建使用Select方法和Selection属性的宏。下述Sub过程是用宏记录器创建的该过程演示了如何共用Select方法和Selection属性。SubMacro()Sheets("Sheet")SelectRange("A")SelectActiveCellFormulaRC="Name"Range("B")SelectActiveCellFormulaRC="Address"Range("A:B")SelectSelectionFontBold=TrueEndSub下例完成同样的功能但不用激活或选定工作表或单元格。SubLabels()WithWorksheets("Sheet")Range("A")="Name"Range("B")="Address"Range("A:B")FontBold=TrueEndWithEndSub选定活动工作表上的单元格如果用Select方法选定单元格就应注意Select方法仅用于活动工作表。从模块中运行Sub过程时必须先在该过程中激活工作表然后才能用Select方法选定单元格区域否则该方法将失败。例如下述过程在活动工作簿中将工作表“Sheet”中的一行复制到工作表“Sheet”上。SubCopyRow()Worksheets("Sheet")Rows()CopyWorksheets("Sheet")SelectWorksheets("Sheet")Rows()SelectWorksheets("Sheet")PasteEndSub激活选定区域内的单元格可用Activate方法激活选定区域内的单元格。即便选定了单元格区域也只能有一个活动单元格。下述过程选定了一个单元格区域然后激活该区域内的一个单元格但并不改变选定区域。SubMakeActive()Worksheets("Sheet")ActivateRange("A:D")SelectRange("B")ActivateEndSub、处理三维区域如果要处理若干工作表上同一位置的单元格区域可用Array函数同时选定两张或多张工作表。下例设置三维单元格区域的边框格式。SubFormatSheets()Sheets(Array("Sheet","Sheet","Sheet"))SelectRange("A:H")SelectSelectionBorders(xlBottom)LineStyle=xlDoubleEndSub下例应用FillAcrossSheets方法在活动工作簿中将工作表“Sheet”上单元格区域的格式和数据复制到该工作簿中所有工作表上的相应区域中。SubFillAll()Worksheets("Sheet")Range("A:H")Borders(xlBottom)LineStyle=xlDoubleWorksheetsFillAcrossSheets(Worksheets("Sheet")Range("A:H"))EndSub、处理活动单元格ActiveCell属性返回代表活动单元格的Range对象。可对活动单元格应用Range对象的任意属性和方法如下例所示。SubSetValue()Worksheets("Sheet")ActivateActiveCellValue=EndSub注意只有活动单元格所在的工作表处于活动状态时才能处理该活动单元格。移动活动单元格可用Activate方法设置活动单元格。例如下述过程使单元格“B”成为活动单元格然后将其字体设置为加粗。SubSetActive()Worksheets("Sheet")ActivateWorksheets("Sheet")Range("B")ActivateActiveCellFontBold=TrueEndSub注意如果要选定单元格区域可用Select方法。如果要使单个单元格成为活动单元格则要用Activate方法。可用Offset属性来移动活动单元格。下述过程在选定区域内的活动单元格中插入文字然后将活动单元格右移一列但并不改变选定区域。SubMoveActive()Worksheets("Sheet")ActivateRange("A:D")SelectActiveCellValue="MonthlyTotals"ActiveCellOffset(,)ActivateEndSub选择活动单元格周围的单元格CurrentRegion属性返回由空白行和空白列所包围的单元格区域。下例中选定区域扩充到与活动单元格相邻的包含数据的所有单元格然后用“货币”样式设置扩充后的区域的格式。SubRegion()Worksheets("Sheet")ActivateActiveCellCurrentRegionSelectSelectionStyle="Currency"EndSub、在工作表上使用ActiveX控件本帮助主题包括了有关在工作表或图表上使用ActiveX控件的特定信息。有关添加和处理控件的一般信息请参阅“在文档中使用ActiveX控件”和“创建自定义对话框”。在工作表上处理控件时必须记住以下几点。·除ActiveX控件的标准属性之外在MicrosoftExcel中还可使用ActiveX控件的下列属性:BottomRightCell、LinkedCell、ListFillRange、Placement、PrintObject、TopLeftCell和ZOrder。这些属性可用ActiveX控件的名称来返回或设置。下例滚动工作簿窗口使CommandButton位于窗口的左上角。Sett=SheetCommandButtonTopLeftCellWithActiveWindowScrollRow=tRowScrollColumn=tColumnEndWith·当ActiveX控件处于激活状态时将禁用某些MicrosoftExcelVisualBasic方法和属性。例如当某一控件激活时就不能使用Sort方法故下述按钮单击事件处理过程中的代码将失败(因为用户单击按钮后该按钮就处于激活状态)。·PrivateSubCommandButtonClick·Range("a:a")SortKey:=Range("a")EndSub可通过先激活工作表上的其他元素的方法来绕过这种问题。例如下列代码可对单元格区域排序:PrivateSubCommandButtonClickRange("a")ActivateRange("a:a")SortKey:=Range("a")CommandButtonActivateEndSub·当用户通过双击鼠标来编辑内嵌在其他应用程序的文档中的MicrosoftExcel工作簿时该工作簿上的控件将不会正常工作。如果用户是通过用右键单击工作簿然后选中快捷菜单上的“打开”命令来编辑工作簿的话工作簿上的控件就能正常工作了。·用MicrosoftExcel工作簿文件格式保存MicrosoftExcel工作簿时将丢失ActiveX控件信息。·在工作表上ActiveX控件的事件处理过程中Me关键字所指向的是工作表而非控件。用VisualBasic添加控件在MicrosoftExcel中用OLEObjects集合中的OLEObject对象代表ActiveX控件(所有的OLEObject对象也包含在Shapes集合中)。如果要用编程的方式向工作表添加ActiveX控件可用OLEObjects集合的Add方法。下例向第一张工作表添加命令按钮。Worksheets()OLEObjectsAdd"FormsCommandButton",Left:=,Top:=,Height:=,Width:=通过VisualBasic使用控件属性绝大多数情况下可在VisualBasic代码中用名称引用ActiveX控件。下例修改了控件“CommandButton”的标题。SheetCommandButtonCaption="Run"请注意当在控件所在的工作表的类模块之外使用控件的名称时必须用工作表的名称限定该控件的名称。如果要修改在VisualBasic代码中所用的控件的名称可先选定该控件然后在“属性”窗口中设置控件的“(名称)”属性。因为ActiveX控件也可用OLEObjects集合中的OLEObject对象代表所以也可用该集合中的对象来设置控件的属性。下例设置了控件“CommandButton”的左边位置。Worksheets()OLEObjects("CommandButton")Left=那些不属于OLEObject对象的属性的控件属性可通过由Object属性返回的实际控件对象来设置。下例设置了控件“CommandButton”的标题。Worksheets()OLEObjects("CommandButton")ObjectCaption="runme"因为所有的OLE对象也是Shapes集合的成员所以也可用该集合设置若干控件的属性。下例对齐第一张工作表上的所有控件的左边框。ForEachsInWorksheets()ShapesIfsType=msoOLEControlObjectThensLeft=Next使用Shapes和OLEObjects集合的控件名称工作表上的ActiveX控件具有两个名称:其一是包含该控件的形状的名称当查看工作表时可在“Name”框中看到此名称其二是控件的代码名称在“属性”窗口的“(名称)”框右边的单元格中可看到此名称。第一次向工作表中添加控件时形状名称和代码名称是相同的。但是如果更改其中之一(形状名称或代码名称)另一个名称并不会自动随之更改。对于控件的事件过程其名称中所使用的是控件的代码名称。但是当从工作表的Shapes或OLEObjects集合中返回控件时必须使用形状名称(而不是代码名称)以便按名称引用控件。例如假设向工作表中添加了一个复选框其默认形状名称和默认代码名称都是“CheckBox”。如果此后在“属性”窗口的“(名称)”旁键入了“chkFinished”从而将控件的代码名称更改为“chkFinished”则在事件过程名称中必须使用chkFinished而仍然应使用CheckBox从Shapes或OLEObject集合中返回控件如下例所示。PrivateSubchkFinishedClick()ActiveSheetOLEObjects("CheckBox")ObjectValue=EndSub、在文档中使用ActiveX控件就如同可向自定义对话框中添加ActiveX控件一样也可向文档直接添加控件从而可以为用户提供直接同宏打交道的的手段而使用户不必被对话框所干扰。可用下列过程向文档添加ActiveX控件。有关在MicrosoftExcel中使用ActiveX控件的特定信息请参阅在工作表上使用ActiveX控件。)向文档中添加控件显示“控件工具箱”单击要添加的控件然后单击文档。)置控件的属性在设计模式下用右键单击该控件然后单击快捷菜单内的“属性”命令以显示属性窗口。)始化控件可在某一过程中初始化控件。)编写事件过程所有的控件都有一系列的预定义事件。例如当用户单击命令按钮时该命令按钮就引发一个Click事件。可以编写事件发生时所运行的事件处理过程。)码运行时使用控件的值有些属性可在运行时进行设置。、创建自定义对话框可用下述过程创建自定义对话框。)创建用户窗体在VisualBasic编辑器中单击“插入”菜单内的“添加用户窗体”命令。)向用户窗体中添加控件在“工具箱”中找到要添加的控件并将其拖到窗体中。)设置控件的属性在设计模式下用右键单击该控件然后单击快捷菜单内的“属性”命令以显示属性窗口。)初始化控件可在窗体显示之前的某一过程中初始化控件或者在窗体的Initialize事件中添加初始化代码。)编写事件过程所有的控件都有一系列的预定义事件。例如当用户单击命令按钮时该命令按钮就引发一个Click事件。可以编写事件发生时所运行的事件处理过程。)显示对话框可用Show方法显示用户窗体。)代码运行时使用控件的值有些属性可在运行时进行设置。用户对对话框所作的修改在对话框关闭后将丢失。、在窗体上使用MicrosoftOfficeWeb组件在VisualBasic或VisualBasicforApplications中可以向用户窗体中添加MicrosoftOfficeWeb组件其方法与向用户窗体中添加任何其他ActiveX控件相同。注意虽然在设计窗体时可以使用“属性工具箱”但却不能在运行时从模式窗体或对话框中的MicrosoftOfficeWeb组件中显示“属性工具箱”。对于在非VisualBasic或VisualBasicforApplications以外的其他设计环境中所创建的模式窗体此情况同样适用。可以使用ShowModal属性将窗体设置为无模式。、内置对话框参数表对话框常量参数表xlDialogActivatewindowtext,panenumxlDialogActiveCellFontfont,fontstyle,size,strikethrough,superscript,subscript,outline,shadow,underline,color,normal,background,startchar,charcountxlDi

VIP免券下载文档

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/137

vba帮助

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利