excel -senior vba lesson ,from 0 to 100

Description

excel function ,excel lesson

Shared by: Guihong
-
Stats
views:
5
posted:
11/29/2012
language:
English
pages:
2
Document Sample
scope of work template
							                                  VISUAL BASIC FOR APPLICATIONS
                                    LESSON THIRTYSEVEN: USING API




NOTE [1]: For the e-mail API functions to work, “VBAMAP32.DLL” MUST either already exist in OR be
copied to the “WINDOWS\SYSTEM” folder.
[It has been included with this tutorial.]

NOTE [2]: The MAPI functions and the data type declarations given below are found in documents available in
the Microsoft Platform SDK. References for MAPI can also be found by searching the Microsoft website as well
as the internet.



In lesson 6, we created a function called “sndPlaySound32” that called the "winmm.dll” to play sounds.
Public Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As
String, ByVal uFlags As Long) As Long

This declaring of a function to access a library of functions that exist in a windows “dll” file is called “making
API calls”. It is a very powerful way to increase the power of using VBA in WORDS, EXCEL and ACCESS.

In this exercise we will be looking at accessing the e-mail functions of the “VBAMAP32.DLL”. These functions
are accessed by the following declaration format.
Example:
Declare Function MAPISendMail Lib "VBAMAP32.DLL" Alias "BMAPISendMail" (ByVal Session&, ByVal
UIParam&, Message As MapiMessage, Recipient As MapiRecip, File As MapiFile, ByVal Flags&, ByVal
Reserved&) As Long


The parameters passed to the function are “User Defined” data types, declared using the “Type” statement.
Example:
Type MapiMessage
  Reserved As Long
  Subject As String
  NoteText As String
  MessageType As String
  DateReceived As String
  ConversationID As String
  Flags As Long
  RecipCount As Long
  FileCount As Long
End Type

What is passed to the function by the reference to “Message As MapiMessage”, is an object that contains a
collection of values, such as….
“MapiMessage.Subject”
“MapiMessage.NoteText”
                                Etc….

The following procedure starts an e-mail session.

‘First declare local variables
Dim udtMessage As MapiMessage ' message object
Dim udtRecip As MapiRecip ' recipient object
Dim udtFile As MapiFile ' attachment object
Dim lReturn As Long ' return flag
‘Set values to initialize the function, then call the function
Public Sub sendEmail()
 lReturn = MAPISendMail(0, 0, udtMessage, udtRecip, udtFile, MAPI_DIALOG, 0)
If lReturn <> SUccESS_SUccESS Then
MsgBox MapiErr(lReturn)
End If
End Sub

Click on this button to try it!                Send an e-mail


If you use the project explore to look at the code for this document, you will find that there is a declarations
module, “Module1”, where the necessary constants are declared and the MAPI functions (API calls) are located.
Most of these have been given the “Global” scope, so that they are available to all modules in the project.

The procedure for the send e-mail button above is contained in “Module2”.

Remember it is good programming practice to isolate your program into modules.

This ….
 preserves scope
 allows for easier debugging
 allows you to easily export and import code
   and finally ….
 makes it easier to manage a large project.

Using the API’s will require you to either buy an appropriate reference book, or to do some searching on the
internet. (There are many good references to be found.)
Good luck!

EXERCISE:
[1: Simple] Expand the code for the send e-mail button above to automatically fill in the subject and message
fields in the email client you use.
(Hint: “ udtMessage.Subject =? “)

[2: Harder] Use the “MAPIResolveName” function to find an address before going on to use the
“MAPISendMail” function
(Hint: “udtRecip.RecipCount = 0 “)



                        [To Lesson Thirtysix] [To Part Five Index Page] [To Lesson Thirtyeight]

						
Shared by: 201212 29
About
download professional profile
Related docs
Other docs by Guihong
4.20統計技術程序A
Views: 0  |  Downloads: 0
审计·刘圣妮基础班·第20章(2)
Views: 2  |  Downloads: 0
鑽孔課重工成本0301月份
Views: 0  |  Downloads: 0
JapaneseChinese CgJGJqjJ4zBBpC8y
Views: 0  |  Downloads: 0
073職業性健康檢查管理規定
Views: 0  |  Downloads: 0
DOLLAR函数
Views: 0  |  Downloads: 0
電鍍危害識別
Views: 5  |  Downloads: 0
0105108 WSR方法论的一些概念和认识
Views: 17  |  Downloads: 0
06年新了解到的电路板企业
Views: 0  |  Downloads: 0
MDIS_005
Views: 0  |  Downloads: 0