日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

你想打開任意程序嗎?沒問題,VBA代碼可以做到

 東西二王 2019-05-17

大家好,我們今日繼續(xù)講解VBA代碼解決方案的第137講內容:VBA代開任意程序的方法。

我們在寫代碼的時候,有時候會必須打開另外一個文件,今日的內容就是解決這個問題,在VBA代碼中如何可以打開其他的程序呢?我講解兩種方法。

一Shell函數(shù)。該函數(shù)讓你可以從VBA過程里直接打開任意程序。

Shell函數(shù)是什么呢?它既不是工作表函數(shù),也不是api函數(shù),它是vba自帶的函數(shù)。但是它卻神通廣大,能抵n個api函數(shù),api是應用程序接口,shell就是應用程序和系統(tǒng)之間的橋梁。它的用法很簡單,就是執(zhí)行一個可執(zhí)行文件。與開始菜單的運行功能一樣。

語法:Shell(pathname[,windowstyle])

pathname 是要執(zhí)行的程序名,可能還包括目錄或文件夾

Windowstyle 表示在程序運行時窗口的樣式,如下:

窗口形式常數(shù) 值 窗口顯示情況

vbHide 0 窗口被隱藏

vbNormalFocus 1 普通大小,并帶焦點

vbMinimizedFocus(默認設 2 最小化,并帶焦點(這是缺省設置)

置)

vbMaximizedFocus 3 最大化,并帶焦點

vbNormalNoFocus 4 普通大小,并失去焦點

vbMinimizedNoFocus 6 最小化,并失去焦點

例一:假設你的過程必須打開視窗記事本, Shell 'notepad.exe', vbMaximizedFocus

在上面的語句里,'notepad.exe'是你要打開的程序的名稱。如果你擔心程序找不到的話,那么該名稱就應該包含完整的路徑(啟動器名稱和文件夾名稱)。注意,程序名稱用雙引號括起來了。Shell函數(shù)的第二個參數(shù)可以忽略。該參數(shù)明確窗口形式(也就是當程序啟動的時候,它如何顯示在屏幕上的)。在上面的例子里,記事本將顯示為最大化的窗口。

例二:你如果使用Shell函數(shù)來啟動控制面板呢?Shell 'Control.exe', vbNormalFocus

代碼:

Sub MYNOTE()

Shell 'notepad.exe', vbMaximizedFocus

End Sub

Sub MYControl()

Shell 'Control.exe', vbNormalFocus

End Sub

代碼截圖:

你想打開任意程序嗎?沒問題,VBA代碼可以做到

運行例1和例2 的截圖:

你想打開任意程序嗎?沒問題,VBA代碼可以做到

你想打開任意程序嗎?沒問題,VBA代碼可以做到

注意點1:如果Shell函數(shù)能夠啟動某個可執(zhí)行文件,那么它就會返回一個叫做任務ID的號碼。該號碼是指示應用程序啟動的唯一號碼。如果Shell函數(shù)不成功的話(也就是說某應用程序不能打開),VB就會產(chǎn)生一錯誤。如果你要使用Shell函數(shù)啟動的應用程序的話,就不要在Shell函數(shù)后面輸入任何語句。

注意點2: VBA在啟動程序后,立即就回到過程里面去繼續(xù)剩余的指令(因此,你沒有機會立即使用該應用程序)。

二:ActivateMicrosoftApp 方法。

那么除了使用Shell函數(shù)外,你還可以很方便地使用方法ActivateMicrosoftApp來實現(xiàn)。該方法在微軟Excel應用程序的對象里是可用的,可以激活一個?Microsoft?應用程序。如果該應用程序已經(jīng)處于運行狀態(tài),則本方法激活一個?Microsoft?應用程序。如果該應用程序已經(jīng)處于運行狀態(tài),則本方法將啟動應用程序。

語法:?expression.ActivateMicrosoftApp(index)

expression 必需。該表達式返回一個?Application對象

index 必需XlMSApplication。指定要激活的?Microsoft?應用程序

使用下列常量,常量的名稱指名應用程序名稱。

Access xlMicrosoftAccess

FoxPro xlMicrosoftFoxPro

Mail xlMicrosoftMail

PowerPoint xlMicrosoftPowerPoint

Project xlMicrosoftProject

Schedule xlMicrosoftSchedulePlus

Word xlMicrosoftWord

例如,要從立即窗口啟動PowerPoint的話,你所有要做的事情就是輸入下面的指令并且按下Enter: Application.ActivateMicrosoftApp xlMicrosoftPowerPoint

注意ActivateMicrosoftApp方法要求一個常量來指定要啟動的程序。如果PowerPoint沒有打開的話,上面的過程就會打開PowerPoint,但是如果該程序已經(jīng)打開的話,該指令不會再打開一個新的PowerPoint界面,只是簡單的激活已經(jīng)在運行的應用程序。

代碼:

Sub MYPowerPoint()

Application.ActivateMicrosoftApp xlMicrosoftPowerPoint

End Sub

截圖:

你想打開任意程序嗎?沒問題,VBA代碼可以做到

運行:

你想打開任意程序嗎?沒問題,VBA代碼可以做到

其實在VBA代碼中還有些其他的可以打開程序的方法,就不一一列舉了。請大家在實踐中摸索掌握,

今日內容回向:

1 如何用VBA打開一個程序?

2 本講講的兩種方法有什么不同?

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多