Добавьте в проект vb/vba класс (модуль класса). Дайте модулю название MAPI.
Все процедуры и функции этого объекта - это его методы.
В модуле класса влючите оператор Declare (но с атрибутом PRIVATE а не PUBLIC).
Затем опишите функцию SendMail, в которой вызывайте API-шную функцию MAPISendMail. Аналогично SendDocuments.
В любом другом модуле:
Код: Выделить всё
Sub qwe()
Dim X As MAPI
Set X = New MAPI
X.SendMail(.....)
......
Set X = Nothing
End Sub
Можно проще (с автоматической инициализации экзкмпляра (инстанса) объекта):
Код: Выделить всё
Sub qwe()
Dim X As New MAPI
X.SendMail(.....)
......
Set X = Nothing
End Sub
Но а если мне нужно наделить скажем какой-нибудь объект этими функциями
Какой-нибудь объект "наделить этими функциями" нельзя. Можно только реализовать данные методы в классе, который сами создаете, а потом инициализаровать сколько угодно экземпляров (инстансов) объектов данного класса.
Если Вы создаете не VB/VBA-класс, а OLE/COM/ActiveX-объект, который компилируете в exe или dll, то после компиляции и регистрации в реестре Вы уже сможете в других приложениях создавать его инстансы по CreateObject/CreateRemoteObject.
Добавьте в проект vb/vba класс (модуль класса). Дайте модулю название MAPI.
Все процедуры и функции этого объекта - это его методы.
В модуле класса влючите оператор Declare (но с атрибутом PRIVATE а не PUBLIC).
Затем опишите функцию SendMail, в которой вызывайте API-шную функцию MAPISendMail. Аналогично SendDocuments.
В любом другом модуле:
[code]
Sub qwe()
Dim X As MAPI
Set X = New MAPI
X.SendMail(.....)
......
Set X = Nothing
End Sub
[/code]
Можно проще (с автоматической инициализации экзкмпляра (инстанса) объекта):
[code]
Sub qwe()
Dim X As New MAPI
X.SendMail(.....)
......
Set X = Nothing
End Sub
[/code]
[quote]Но а если мне нужно наделить скажем какой-нибудь объект этими функциями[/quote]
Какой-нибудь объект "наделить этими функциями" нельзя. Можно только реализовать данные методы в классе, который сами создаете, а потом инициализаровать сколько угодно экземпляров (инстансов) объектов данного класса.
Если Вы создаете не VB/VBA-класс, а OLE/COM/ActiveX-объект, который компилируете в exe или dll, то после компиляции и регистрации в реестре Вы уже сможете в других приложениях создавать его инстансы по CreateObject/CreateRemoteObject.