1、PPT VBA 常用语句结束放映的语句SlideShowWindows(Index:=1).View.Exit 关闭当前窗口Application.Windows.Item(1).Close 关闭 PPT Application.Quit在 ppt 中用 VBA 实现多个文档的打开和关闭Sub Ctest()/关闭当前文档ActivePresentation.Close/打开另外一个文档Presentations.Open “C:Documents and SettingsAdministrator桌面FILE 2.ppt“/如果你要新打开的文档开始播放的话,加上下面的一句ActivePres
2、entation.SlideShowSettings.RunEnd Sub跳到某一张幻灯片:With SlideShowWindows(1).View.GotoSlide 2End With文本框控件:Slide5.TextBox1.Text=”888”文本框:Slide1.Shapes(“Text Box 7“).TextFrame.TextRange.Text = “999999“图形元件:Slide1.Shapes(“Oval 9“).Visible = msoFalse图片元件ActivePresentation.Slides(1).Shapes(“Picture 29“).Heigh
3、t = 0ActivePresentation.Slides(1).Shapes(“Picture 29“).Width = 0一、OnSlideShowPageChange 宏的使用 下面我们来研究一下这两个宏的功 能与运行的条件。先来看 OnSlideShowPageChange宏,我们新建一个演示文稿,并把 PowerPoint 宏的安全级别设置为启用全部宏, 在演示文稿中添加几张幻灯片,为便于测试说明,从第一张幻灯片开始,我们按顺序给它们输入数字编号“1、2、3、 4“,再按 Alt+F11 快捷键启动 VBA 编辑器,在其中插入一个模块,向代码窗口中输入如下代码: Sub OnSli
4、deShowPageChange() MsgBox “I love you, PowerPoint.“ End Sub 点击“保存“按钮,保存文档,文件名如 Test.ppt(PowerPoint 2007 中为 Test.pptm) ,返回幻灯片编辑视图,按 F5 键进行放映,我们首先会看到一个显示“I love you, PowerPoint.“的消息框,点击确定后,放映第一张幻灯片,再点击鼠标左键,放映到第二张,也会出现同样的消息框,后面各张的放映的情形也是这 样。这说明我们的宏在放映时及放映过程中被正确地执行了,还说明这个宏是在放映时就自动运行,以后只要有幻灯片切换都会被激发而运行。根
5、据它的特性,只要 是在幻灯片放映开始时就要完成的任务,或是放映过程中需要不断重复做的处理都可以交给它来完成。同时,这个宏也很适合用来对 PowerPoint 放映环境 进行初始化设置,不过应做一下改进,因为初始化只需要一次,反复做会浪费系统资源,改进后的示例代码如下: Sub OnSlideShowPageChange() If ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 1 Then MsgBox “I love you, PowerPoint.“ End If End Sub 再 保存后运行,怎么样,是不是只在
6、放映开始时出现一次消息框,以后幻灯片再切换就看不到消息框了,我们的目的达到了,今后在实际开发中只是放映过程中要反复 执行的代码块就放在 Sub OnSlideShowPageChange()和 End Sub 之间,即代替掉“If Then End If“语句块,凡是开始放映时只需运行一次的代码块就放在 If ActivePresentation.SlideShowWindow.View.CurrentSho wPosition = 1 Then 和 End If 之间,即把 MsgBox “I love you,PowerPoint.“语句替换成我们自己的代码块就行了。 二、OnSlideS
7、howTerminate 宏的使用 现在我们再来研究一下 OnSlideShowTerminate 宏的用法,还是用前面建立的PowerPoint 实列文档 Test.ppt,打开文档后在 VBA 编辑器窗口中输入下面的代码: Sub OnSlideShowTerminate() MsgBox “Good bye, and take care!“ End Sub 保 存后返回 PowerPoint 幻灯片编辑视图,按 F5 进行放映,在放映开始出现显示“I love you, PowerPoint.“消息框,这是 OnSlideShowPageChange 宏的功劳,前面已讲过,点“确定“后继
8、续播放直至结束,我们又会看到一 个写着“Good bye, and take care!“的消息框,现在是 OnSlideShowTerminate 宏在起作用。由此我们可以看出,OnSlideShowTerminate 宏只在 结束幻灯片放映时被激活发挥作用,用它我们可以处理放映完成后的环境清理工作,只要把我们的相关代码放在 Sub OnSlideShowTerminate()和 End Sub 中间替换掉 MsgBox “Good bye, and take care!“语句就 OK 了。下面的資料是平時使用到的一些數據庫連接方式可能不太全 但是可以用來當做資料查詢希望能夠幫上大家的忙。下
9、面將簡單介紹一下幾種 ADO 連接方式ODBC DSN,ODBC DSN-Less, OLE DB Provider,和“MS Remote“ Provider.I.DSNoConn.Open “DSN=AdvWorks; UID=Admin; PWD=;“注意從 MDAC2.1 開始就不能夠在使用這樣的方式了就是只把 DSN 文件名放在ConnectString 中。你必須同時使用 DSNUIDPWD 標志。例如下面的方式在 MDAC 2.1 中將會出錯oConn.Open “AdvWorks“II.File DSNoConn.Open “FILEDSN=somepathmydb.dsn;
10、UID=Admin; PWD=;“III.ODBC DSN-Less Connectionsa)ODBC Text DriveroConn.Open “Driver=Microsoft Text Driver (*.txt; *.csv); Dbq=somepath;“ Persist Security Info=False“注意需要在 SQL 語句中指定使用到的文件名。例如oRs.Open “Select * From customer.csv“, oConn, adOpenStatic, adLockReadOnly, adCmdTextb)ODBC Driver for Accessi)
11、普通安全模式oConn.Open “Driver=Microsoft Access Driver (*.mdb);“ Uid=Admin; Pwd=;“ii)如果使用了 System database:oConn.Open “Driver=Microsoft Access Driver (*.mdb);“ SystemDB=somepathmydb.mdw;“, “admin“, “c)ODBC Driver for SQL Serveri)普通安全模式oConn.Open “Driver=SQL Server; Server=carl2;“ Uid=sa; Pwd=;“ii)使用信任安全模式
12、oConn.Open “Driver=SQL Server; Server=carl2;“ Uid=; Pwd=;“注意要使用空白的 Uid 和 Pwd d)ODBC Driver for Oraclei)使用現有的 Oracle ODBC Driver from Microsoft:oConn.Open “Driver=Microsoft ODBC for Oracle;“ Uid=demo; Pwd=demo;“ii)使用老版本的 Oracle ODBC Driver from Microsoft:oConn.Open “Driver=Microsoft ODBC Driver for O
13、racle;“ Uid=demo; Pwd=demo;“IV)使用微軟的 OLE DB Data Link Connections 方式 Data Link File (UDL)a)使用絕對路徑oConn.Open “File Name=somepathpubs.udl;“ b)使用相對路徑oConn.Open “File Name=pubs.udl;“ V)OLE DB Provider Connections 方式a)OLE DB Provider for ODBC Databasesi)Access (Jet):oConn.Open “Provider=MSDASQL; Driver=M
14、icrosoft Access Driver (*.mdb);“ Uid=Admin; Pwd=;“ii)SQL Server:oConn.Open “Provider=MSDASQL; Driver=SQL Server;“ Database=pubs; Uid=sa; Pwd=;“b)OLE DB Provider for Microsoft Jet (Access)i)普通安全模式oConn.Open “Provider=Microsoft.Jet.OLEDB.4.0;“ User Id=admin; Password=;“ii)如果使用了 System database:oConn.O
15、pen “Provider=Microsoft.Jet.OLEDB.4.0;“ Jet OLEDB:System Database=system.mdw;“, “admin“, “ 注意當使用 OLE DB Provider4.0 版本是需要把 MDB 和 MDW 文件轉換成 4.0 的數據庫格式iii)如果 MDB 需要一個數據庫密碼的話oConn.Open “Provider=Microsoft.Jet.OLEDB.4.0;“ Jet OLEDB:Database Password=MyDbPassword;“, “admin“, “c)OLE DB Provider for Excel
16、Spreadsheet: oConn.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=somepathexpenses.xls;“ HDR=Yes;“ 注意 “HDR=Yes“ 表示在第一行中是行標題在 provider 中將不把第一行包括入 recordset中d)OLE DB Provider for SQL Serveri)普通安全模式oConn.Open “Provider=sqloledb; Network Library=DBMSSOCN;“ Initial Catalog=pubs; User Id=sa; Password
17、=;“ii)使用信任安全模式oConn.Open “Provider=sqloledb; Network Library=DBMSSOCN;“ Initial Catalog=pubs; Trusted_Connection=yes;“注意“Network Library=DBMSSOCN“聲明 OLE DB 使用 TCP/IP 替代 Named Pipes.e)OLE DB Provider for OracleoConn.Open “Provider=msdaora; Data Source=OracleServer.world;“ Password=;“(VI)Remote OLE DB
18、 Provider Connections 方式 就是 RDS 方式a)MS Remote - Access (Jet)i)ODBC DSN:oConn.Open “Remote Server=http:/carl2; Remote Provider=MSDASQL;“ Uid=admin; Pwd=;“ ii)OLE DB Provider:oConn.Open “Provider=MS Remote; Remote Server=http:/carl2;“ Data Source=somepathmydb.mdb;“, “admin“, “iii)OLE DB Provider 自定義事務
19、對象oConn.Open “Provider=MS Remote; Remote Server=http:/carl2;“ Data Source=MyAdvworksOLEDBConnectTag;“b)MS Remote - SQL Serveri)ODBC DSN:oConn.Open “Remote Server=http:/carl2; Remote Provider=MSDASQL;“ DSN=Pubs; Uid=sa; Pwd=;“ ii)OLE DB ProvideroConn.Open “Provider=MS Remote; Remote Server=http:/carl2;“ Network Library=DBMSSOCN;“ Initial Catalog=pubs; User ID=sa; Password=;“Set objConn = New ADODB.ConnectionobjConn.ConnectionString = “Provider=MSDAORA.1;“ “ “ & _“Data Source