|
127 播放Flash文件 如果需要在工作表中播放Flash文件,那么可以使用ShockwaveFlash控件。 步驟1,在工作表中單擊菜單“視圖”→“工具欄”→“控件工具箱”→“其他控件”,選擇“ShocKwave Flash Object”后在工作表中拖動添加ShockwaveFlash控件。 如果“其他控件”中沒有該控件,請參閱▲126 對其進行注冊,ShockwaveFlash控件的文件名為Flash9d.OCX。 步驟2,在設計模式下右鍵單擊ShockwaveFlash控件,選擇“屬性”,設置ShockwaveFlash控件的Base屬性和Movie屬性為Flash文件所在的路徑,設置Embedmovie屬性為True,使Flash文件嵌入到Excel中。 可以使用代碼設置ShockwaveFlash控件的各項屬性,如下面的代碼所示。 Private Sub Workbook_Open() WithSheet1.ShockwaveFlash1 .Base = ThisWorkbook.Path & '\face.swf' .Movie = ThisWorkbook.Path &'\face.swf' .EmbedMovie = True EndWith End Sub 代碼解析: 工作簿打開時將ShockwaveFlash控件的Base屬性和Movie屬性設置為同一目錄中的“face.swf”文件,設置Embedmovie屬性為True。 退出設計模式后,將在工作表中顯示Flash動畫。
▲128 在工作表中添加窗體控件 在工作表中添加窗體控件,除了使用手工添加外,還可以使用代碼添加,方法如下: 128-1 使用AddFormControl方法 使用AddFormControl方法在工作表中添加窗體控件,如下面的代碼所示。 Sub AddFormControls() DimmyShape As Shape On ErrorResume Next Sheet1.Shapes('myButton').Delete SetmyShape = Sheet1.Shapes.AddFormControl(0,108,72,108,27) WithmyShape .Name = 'myButton' With .TextFrame.Characters .Font.ColorIndex = 3 .Font.Size = 12 .Text = '新建的按鈕' End With .OnAction = 'myButton' EndWith End Sub Sub myButton() MsgBox'這是使用AddFormControl方法新建的按鈕!' End Sub 代碼解析: AddFormControls過程使用AddFormControl方法在工作表中添加窗體控件。 第3、4行代碼為了避免在工作表中重復添加按鈕控件,先刪除工作表中的“myButton”按鈕。 第5行代碼,使用AddFormControl方法在工作表中添加命令按鈕控件并設置控件的坐標和大小。應用于Shapes對象的AddFormContl方法創(chuàng)建一個Microsoft Excel控件,返回一個Shape對象,該對象代表新建的控件,語法如下: expression.AddFormControl(Type,Left,Top,Width,Height) 參數expression是必需的,一個有效的對象。 參數Type是必需的,MicrosoftExcel控件類型,可以為表格所列XlFormControl 常量之一。 參數Left是必需的,新對象的初始坐標(以磅為單位)相對于工作表 A1 單元格的左上角或圖表的左上角。 參數Top是必需的,新對象的初始坐標(以磅為單位)相對于工作表 A1 單元格的左上角或圖表的左上角。 參數Width是必需的,以磅為單位的新對象的初始大小。 參數Height是必需的,以磅為單位的新對象的初始大小。 第7行代碼將新添加的按鈕名稱設置為“myButton”。 第8行到第12行代碼設置新添加的按鈕文字設置為“新建的按鈕”,并設置文字的大小和顏色。 第13行代碼,指定新添加按鈕所執(zhí)行的宏名稱。 myButton過程是單擊新添加按鈕所執(zhí)行的過程,顯示一個消息框。 運行AddFormControls過程將在工作表中添加一個命令按鈕,單擊按鈕顯示一個消息框。 128-2 使用Add方法 在工作表中添加窗體控件還可以使用Add方法,如下面的代碼所示。 Sub AddChartObjects() DimmyButton As Button On ErrorResume Next Sheet1.Shapes('myButton').Delete SetmyButton = Sheet1.Buttons.Add(108,72,108,27) WithmyButton .Name = 'myButton' .Font.Size = 12 .Font.ColorIndex = 5 .Characters.Text = '新建的按鈕' .OnAction = 'myButton' EndWith End Sub Sub myButton() MsgBox'這是使用Add方法新建的按鈕!' End Sub 代碼解析: AddChartObjects過程使用Add方法在工作表中添加窗體控件。 第3、4行代碼為了避免在工作表中重復添加按鈕控件,先刪除工作表中的“myButton”按鈕。 第5行代碼,使用Add方法在工作表中添加命令按鈕控件,Add方法適用于ChartObjects對象的語法如下: expression.Add(Left,Top,Width,Height) 參數expression是必需的,該表達式返回一個ChartObjects對象。 如果需要在工作表中添加其他窗體控件,可以將參數expression設置為表格所示的ChartObjects對象之一。 參數Left和Top是必需的,以磅為單位給出新對象的初始坐標,該坐標是相對于工作表上單元格 A1 的左上角或圖表的左上角的坐標。 參數Width和參數Height是必需的,以磅為單位給出新對象的初始大小。 第7行代碼將新添加的按鈕的名稱設置為“myButton”。 第8行到第10代碼新添加的按鈕的文字設置為“新建的按鈕”并設置文字的大小和顏色。 第11行代碼,指定新添加命令按鈕所執(zhí)行的宏名稱。 myButton過程是單擊新添加按鈕所執(zhí)行的過程,顯示一個消息框。 運行AddChartObjects過程將在工作表中添加一個命令按鈕,單擊按鈕顯示一個消息框。
▲129 在工作表中添加ActiveX控件 ▲128 中使用代碼在工作表中添加的是窗體控件,而本例中使用代碼在工作表中添加的是ActiveX控件,兩者是有區(qū)別的,在工作表中前者是使用窗體對話框添加,而后者是使用控件工具箱添加。 129-1 使用Add方法 使用Add方法在工作表中添加ActiveX控件,如下面的代碼所示。 Sub AddObj() DimObj As New OLEObject On ErrorResume Next Sheet1.OLEObjects('MyButton').Delete SetObj = Sheet1.OLEObjects.Add(ClassType:='Forms.CommandButton.1',_ Left:=108,Top:=72,Width:=108,Height:=27) WithObj .Name = 'MyButton' .Object.Caption = '新建的按鈕' .Object.Font.Size = 16 .Object.ForeColor = &HFF& EndWith WithActiveWorkbook.VBProject.VBComponents(Sheet1.CodeName).CodeModule If .Lines(1,1) <> 'Option Explicit' Then .InsertLines 1,'Option Explicit' End If If .Lines(2,1) = 'Private Sub MyButton_Click()' Then ExitSub .InsertLines 2,'Private Sub MyButton_Click()' .InsertLines 3,vbTab & 'MsgBox ““這是使用Add方法新建的按鈕!”“' .InsertLines 4,'End Sub' EndWith End Sub 代碼解析: AddOLEObject過程使用Add方法在向工作表中添加ActiveX控件中的命令按鈕和相應的代碼。 第3、4行代碼為了避免在工作表中重復添加按鈕控件,先刪除工作表中的名稱為“myButton”的按鈕。 第5、6行代碼,使用Add方法在向工作表中添加ActiveX控件中的命令按鈕,Add方法應用于OLEObjects 對象的語法如下: expression.Add(ClassType,FileName,Link,DisplayAsIcon,IconFileName,IconIndex,IconLabel,Left,Top,Width,Height) 其中參數expression是必需的,返回一個 OLEObjects 對象。 參數ClassType是可選的,創(chuàng)建的對象的程序標識符。如果指定了 ClassType參數,則忽略FileName參數和Link參數。 在本例中指定添加控件的程序標識符為“Forms.CommandButton.1”,即命令按鈕控件,關于對象的程序標識符請參閱▲119-3。 參數Left和參數Top是必需的,以磅為單位給出新對象的初始坐標,該坐標是相對于工作表上單元格 A1 的左上角或圖表的左上角的坐標。 參數Width和參數Height是可選的,以磅為單位給出OLE對象的初始大小。 第8行代碼,設置命令按鈕的名稱為“MyButton”。 第9行代碼,設置命令按鈕的文字為“新建的按鈕” 第10行代碼,設置命令按鈕的文字的大小。 第11行代碼,設置命令按鈕的文字的顏色。 第13行到第21行代碼,在工作表中寫入新添加的命令按鈕的單擊事件代碼。 ActiveX控件不能像窗體控件用OnAction屬性來指定宏,需要使用CodeModule對象的InsertLines方法在工作表中插入代碼。 應用于CodeModule對象的InsertLines方法的語法如下: object.InsertLines(line,code) 參數object是必需的,一個有效的對象。 參數line是必需的,用來指定要插入代碼的位置。 參數code是必需的,要插入的代碼。 第14行到第16行代碼判斷首行內容是否為要求變量聲明,如不是則添加要求變量聲明語句。 第17行到第20行代碼判斷是否已存在相同名稱的過程,如不存在則使用InsertLines方法在工作表中插入代碼。 運行AddOLEObject過程,將在工作表中添加一個命令按鈕和相應的代碼,單擊按鈕顯示一個消息框。 129-2 使用AddOLEObject方法 在工作表中添加ActiveX控件,還可以使用AddOLEObject方法,如下面的代碼所示。 Sub AddShapes() DimShpBut As Shape On ErrorResume Next Sheet1.OLEObjects('MyButton').Delete SetShpBut = Sheet1.Shapes.AddOLEObject(ClassType:='Forms.CommandButton.1',_ Left:=108,Top:=72,Width:=108,Height:=27) ShpBut.Name = 'MyButton' WithActiveWorkbook.VBProject.VBComponents(Sheet1.CodeName).CodeModule If .Lines(1,1) <> 'Option Explicit' Then .InsertLines 1,'Option Explicit' End If If .Lines(2,1) = 'Private Sub MyButton_Click()' Then ExitSub .InsertLines 2,'Private Sub MyButton_Click()' .InsertLines 3,vbTab & 'MsgBox ““這是使用AddOLEObject方法新建的按鈕!”“' .InsertLines 4,'End Sub' EndWith End Sub 代碼解析: AddShapes過程使用AddOLEObject方法在向工作表中添加ActiveX控件中的命令按鈕和相應的代碼。 第5、6行代碼,使用AddOLEObject方法在向工作表中添加ActiveX控件中的命令按鈕,AddOLEObject方法創(chuàng)建OLE對象,語法如下: expression.AddOLEObject(ClassType,FileName,Link,DisplayAsIcon,IconFileName,IconIndex,IconLabel,Left,Top,Width,Height) AddOLEObject方法參數與Add方法類似,請參閱▲129-1。 運行AddShapes過程,將在工作表中添加一個命令按鈕和相應的代碼,單擊按鈕顯示一個消息框。
▲130 |
|
|