一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用 Declare 語句

 星之明光 2011-08-30
VBA解釋
2008年01月04日 星期五 下午 01:36

我們都知道,Visual Basic® for Applications (VBA) 是一種功能強(qiáng)大的編程語言,可用來開發(fā)自定義 Microsoft Office 解決方案。將 VBA 和一個或多個 Office 應(yīng)用程序?qū)ο竽K配合使用,您可以輕松地修改 Office 應(yīng)用程序的功能,或者使兩個或多個應(yīng)用程序協(xié)同工作,從而完成單個應(yīng)用程序無法完成的任務(wù)。VBA 只能控制操作系統(tǒng)的一小部分,即直接向 VBA 公開的那些函數(shù)和對象。Windows® 應(yīng)用程序編程接口 (API) 提供了眾多函數(shù),可讓您深入控制操作系統(tǒng)的絕大部分內(nèi)容。您可以從 VBA 中調(diào)用 Windows API 函數(shù),擴(kuò)展和優(yōu)化自定義 Office 解決方案。
在這個月的專欄中,我將為您簡單介紹如何在 VBA 中使用 Windows API,并提供一些有用的示例。您可以復(fù)制這些示例,在自己的自定義解決方案中直接使用它們。

警告:調(diào)用 Windows API 和其他 DLL 函數(shù)可能會影響您的應(yīng)用程序的可靠性。當(dāng)您從自己的代碼中直接調(diào)用 DLL 函數(shù)時,會跳過 VBA 在正常情況下提供的一些安全機(jī)制。如果您錯誤地定義或調(diào)用 DLL 函數(shù)(任何程序員都難免犯這類錯誤),就可能會產(chǎn)生應(yīng)用程序錯誤,也稱為常規(guī)保護(hù)錯誤,即 GPF。如果使用了 API,那么在運(yùn)行代碼前一定要保存項(xiàng)目,并確保已理解調(diào)用 DLL 函數(shù)的原理。
理解 API
簡單地說,API 就是您用來控制組件、應(yīng)用程序或操作系統(tǒng)的一組函數(shù)。API 通常包含一個或多個可以提供某些特定功能的 DLL。
DLL 是一些包含任何 Windows 應(yīng)用程序都可以調(diào)用的函數(shù)的文件。在運(yùn)行過程中,DLL 中的函數(shù)“動態(tài)地鏈接”到調(diào)用它的應(yīng)用程序中。不管有多少個應(yīng)用程序調(diào)用 DLL 中的函數(shù),該函數(shù)只存在于驅(qū)動器上的一個單一的文件中,并且該 DLL 在內(nèi)存中只創(chuàng)建一次。
您最常聽說的 API 可能是 Windows API,它包含組成 Windows 操作系統(tǒng)的所有 DLL。每個 Windows 應(yīng)用程序都直接或間接地與 Windows API 交互作用。Windows API 可以保證所有在 Windows 中運(yùn)行的應(yīng)用程序都按照統(tǒng)一的方式運(yùn)行。
除了 Windows API 外,還有其他一些公開的 API。例如,郵件應(yīng)用程序編程接口 (MAPI) 是用于編寫電子郵件應(yīng)用程序的一組 DLL。
傳統(tǒng)上 API 是為那些創(chuàng)建 Windows 應(yīng)用程序的 C 和 C++ 程序員編寫的,但使用 VBA 也可以調(diào)用 DLL 中的函數(shù)。由于大部分 DLL 及其文檔最初是為 C/C++ 程序員編寫的,所以調(diào)用 DLL 函數(shù)和調(diào)用 VBA 函數(shù)可能會有所不同。為了使用 API,您需要了解如何向 DLL 函數(shù)傳遞參數(shù)。
為了調(diào)用 Windows API 中的函數(shù),您需要參考有關(guān)文檔,了解有哪些函數(shù)可供使用以及如何在 VBA 中聲明和調(diào)用這些函數(shù)。以下是兩個很有用的資源:
1. 文件 Win32API.txt,包含在 Microsoft Office 2000 Developer 和 Microsoft Visual Basic 中。文件 Win32API.txt 包含了大部分 Windows API 函數(shù)所使用的 VBA Declare 語句。您可以使用 API Viewer 外接程序(同樣包含在 Office 2000 Developer 中)來查找和復(fù)制您需要的 Declare 語句。有關(guān)安裝和使用 API Viewer 外接程序的信息,請參閱 Office 2000 Developer 中的 apiload.txt 文件。Microsoft Visual Basic 附帶的 API Viewer 應(yīng)用程序具有相同的功能,只不過它是一個獨(dú)立的應(yīng)用程序。
初次運(yùn)行 API Viewer 應(yīng)用程序時,它將加載 Win32API.txt 文件。該文本文件可以導(dǎo)出到一個 Microsoft Access 數(shù)據(jù)庫(.mdb 文件)中,這樣能加速加載和瀏覽 API 數(shù)據(jù)的過程。
2. Microsoft Platform SDK,包含完整的 Windows API 文檔。它可以在 Microsoft Developer Network 站點(diǎn)上免費(fèi)獲得(英文)。

使用 Declare 語句
在從 VBA 調(diào)用 DLL 中的函數(shù)前,您必須先告訴 VBA 該函數(shù)位于何處以及如何調(diào)用它。有兩種方法可以實(shí)現(xiàn)這一目的:
1. 設(shè)置 DLL 類型庫的引用。

2. 在模塊中使用 Declare 語句。
設(shè)置 DLL 類型庫的引用是使用 DLL 函數(shù)的最簡單的方法。一旦設(shè)置了引用,您便可以調(diào)用 DLL 函數(shù),就好象它是項(xiàng)目中的一部分。然而,這里有一些需要注意的地方。首先,設(shè)置引用多個類型庫會影響應(yīng)用程序的性能。其次,并非所有 DLL 都提供類型庫。盡管可以設(shè)置引用一個不提供類型庫的 DLL,但卻不能象將其作為項(xiàng)目中的一部分那樣調(diào)用該 DLL 中的函數(shù)。
請注意,組成 Windows API 的 DLL 不提供類型庫,因而不能通過設(shè)置引用這些 DLL 來調(diào)用其中的函數(shù)。要調(diào)用 Windows API 中的函數(shù),您必須在項(xiàng)目中的模塊聲明部分插入一條 Declare 語句。
Declare 語句是一條定義語句,它告訴 VBA 從何處獲得特定的 DLL 函數(shù)以及如何調(diào)用該函數(shù)。在代碼中添加 Declare 語句的最簡單方法是使用 API Viewer 外接程序,該程序包含了大部分 Windows API 函數(shù)所使用的 Declare 語句,以及一些函數(shù)需要的常量和類型定義。
下例所示為 GetTempPath 函數(shù)的 Declare 語句,該函數(shù)將返回 Windows 臨時文件夾的路徑(默認(rèn)情況下為 C:\Windows\Temp


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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    老司机亚洲精品一区二区| 欧洲精品一区二区三区四区| 中文字幕人妻一区二区免费| av在线免费观看在线免费观看| 久久99夜色精品噜噜亚洲av| 日韩和欧美的一区二区三区| 91香蕉国产观看免费人人| 国产精品美女午夜视频| 日本精品中文字幕在线视频| 国产老女人性生活视频| 大香蕉伊人精品在线观看| 亚洲中文字幕视频在线观看| 精品人妻少妇二区三区| 日本女优一色一伦一区二区三区| 九九热精品视频免费观看| 国产午夜精品久久福利| 青青免费操手机在线视频| 国产内射在线激情一区| 激情三级在线观看视频| 色涩一区二区三区四区| 加勒比日本欧美在线观看| 国产熟女一区二区不卡| 四十女人口红哪个色好看| 日本一区二区三区久久娇喘| 美女极度色诱视频在线观看| 欧美一级特黄特色大色大片| 久热久热精品视频在线观看| 日本一品道在线免费观看| 欧美乱妇日本乱码特黄大片| 国内欲色一区二区三区| 国产精品视频第一第二区| 九九热在线免费在线观看| 高清不卡视频在线观看| 国产内射一级二级三级| 亚洲视频一区自拍偷拍另类| 91福利视频日本免费看看| 国产成人亚洲欧美二区综| 色婷婷丁香激情五月天| 精品女同在线一区二区| 初尝人妻少妇中文字幕在线| 日韩在线视频精品视频|