Top Banner
outlook-vba #outlook- vba
24

outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

Feb 15, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

outlook-vba

#outlook-

vba

Page 2: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

1

1: outlook-vba 2

2

Examples 2

2

Outlook VBA for Applications 2

2

2: 1 : Outlook Visual Basic Editor 3

3

Examples 3

1.1 Outlook 2003 Visual Basic Editor 3

1.2 Outlook 2007 Visual Basic Editor 3

1.3 Visual Basic Editor 7

1.4 12

3: 2 : 13

13

Examples 13

2.1 13

2.2 13

2.3 14

2.4 15

4: 3 : 16

16

Examples 16

3. 16

3.1 Function GetFldrNames () . 16

3.2 17

3.3 17

3.4 18

3.5 19

3.6 19

Page 3: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

21

Page 4: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: outlook-vba

It is an unofficial and free outlook-vba ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official outlook-vba.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/ko/home 1

Page 5: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

1: outlook-vba outlook-vba , .

outlook-vba . outlook-vba .

Examples

Outlook VBA .

1 Visual Basic Editor .

Outlook 2003 Excel VBA Outlook Visual Basic Editor Excel VBA .

Outlook 2007 . Visual Basic Editor . . .

2 3 Outlook . Excel . 2 3 . 2 W . 3 . . 2 . .

4 MailItems . 3 . , MailItems .

5 CalendarItems . 6 Outlook Excel . Part 7 .

Outlook VBA VBA . 2 VBA Office Outlook VBA .

Outlook VBA for Applications

Visual Basic for Applications (VBA) Microsoft Office Office . Object . Excel , . . Outlook , . Excel VBA Outlook VBA .

Outlook VBA . Outlook 2003 Outlook 2016 . .

/ Outlook 2003 . " " .

outlook-vba : https://riptutorial.com/ko/outlook-vba/topic/8111/outlook-vba-

https://riptutorial.com/ko/home 2

Page 6: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

2: 1 : Outlook Visual Basic Editor Outlook Visual Basic Editor .

: Outlook .

Outlook 2003 Visual Basic Editor . Visual Basic Editor .

Examples

1.1 Outlook 2003 Visual Basic Editor

Outlook . . . "" .

Outlook 2003 .

.

Visual Basic Editor . Alt + F11 .

1.2 Outlook 2007 Visual Basic Editor

Outlook 2016 . . . "" .

Outlook 2010 . Outlook 2016 .

.

https://riptutorial.com/ko/home 3

Page 7: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

.

.

https://riptutorial.com/ko/home 4

Page 8: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

. .

https://riptutorial.com/ko/home 5

Page 9: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

'' . :

.

https://riptutorial.com/ko/home 6

Page 10: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

Visual Basic Visual Basic Editor .

1.3 Visual Basic Editor

Outlook 2016 Outlook 2003 . Outlook VBA VBA Editor . :

https://riptutorial.com/ko/home 7

Page 11: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

" Project1 " "+" . "+" "Microsoft Outlook Objects" "+" .

https://riptutorial.com/ko/home 8

Page 12: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

, VB . . F4 . . .

ThisOutlookSession .

https://riptutorial.com/ko/home 9

Page 13: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

. ( ) . ThisOutlookSession .

.

https://riptutorial.com/ko/home 10

Page 15: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

"Module1". Outlook . "Module2", "Module3" .

Excel "Module1" . Outlook . . VBA , Excel , Outlook VBA , Outlook . . "Name1" "Module1" ( ) . "Mod" . "ModIntro" .

. .

1.4

Outlook ? Outlook . .•Visual Basic Editor .•.•

1 : Outlook Visual Basic Editor : https://riptutorial.com/ko/outlook-vba/topic/8877/-1----outlook-visual-basic-editor----

https://riptutorial.com/ko/home 12

Page 16: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

3: 2 : . (1) .

Examples

2.1

Outlook "", " ", "" " " .•Outlook Visual Basic Editor . 1 .•VBA . . Withs, Ifs Loops . . . Excel VBA Excel . "VBA " .•Outlook . .•

2.2

Outlook , , , . :

Aaaaaaaaaa Inbox Drafts Deleted Items : : Bbbbbbbbbb Inbox Drafts Deleted Items : : Cccccccccc : :

"Aaaaaaaaaa", "Bbbbbbbbbb" "Cccccccccc" . Outlook . . PST OST . VBA .

. Outlook "Outlook " . Outlook "[email protected]" "[email protected]" . "Archive 2015" .

.

. F4 "ModIntro" . Part 1 , .

.

Sub ListStores1() Dim InxStoreCrnt As Integer Dim NS As NameSpace Dim StoresColl As Folders

https://riptutorial.com/ko/home 13

Page 17: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI") Set StoresColl = NS.Folders For InxStoreCrnt = 1 To StoresColl.Count Debug.Print StoresColl(InxStoreCrnt).Name Next End Sub Sub ListStores2() Dim StoresColl As Stores Dim StoreCrnt As Store Set StoresColl = Session.Stores For Each StoreCrnt In StoresColl Debug.Print StoreCrnt.DisplayName Next End Sub Sub ListStores3() Dim InxStoreCrnt As Long With Application.Session For InxStoreCrnt = 1 To .Folders.Count Debug.Print .Folders(InxStoreCrnt).Name Next End With End Sub

VBA . . - . - .

StoresColl ListStores1() ListStores2() Store Folder . Store . Folder " " " " . Stores , Folders , Store Folder Outlook . . "outlook vba object model" . VBA .

2.3

" ", " " " " . . . , .

.

A A1 A2 A3 B B1 B2 C C1 C2 C3 C4

A, B C A1, B1, C1 A, B C . A1, B1, C1 . .

https://riptutorial.com/ko/home 14

Page 18: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

Sub ListStoresAndTopLevelFolders() Dim FldrCrnt As Folder Dim InxFldrCrnt As Long Dim InxStoreCrnt As Long Dim StoreCrnt As Folder With Application.Session For InxStoreCrnt = 1 To .Folders.Count Set StoreCrnt = .Folders(InxStoreCrnt) With StoreCrnt Debug.Print .Name For InxFldrCrnt = .Folders.Count To 1 Step -1 Set FldrCrnt = .Folders(InxFldrCrnt) With FldrCrnt Debug.Print " " & .Name End With Next End With Next End With End Sub

2.4

Outlook , , , .•" " " " Outlook .•.•Outlook , .•.•.•

: "Hows" . .

2 : : https://riptutorial.com/ko/outlook-vba/topic/8876/-2-------

https://riptutorial.com/ko/home 15

Page 19: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

4: 3 : 2 .

: 2 .

Examples

3.

.•

.•

.•

.•

3.1 Function GetFldrNames () .

. GetFldrNames() . , "ModGlobalOutlook" . . . .

Public Function GetFldrNames(ByRef Fldr As Folder) As String() ' * Fldr is a folder. It could be a store, the child of a store, ' the grandchild of a store or more deeply nested. ' * Return the name of that folder as a string array in the sequence: ' (0)=StoreName (1)=Level1FolderName (2)=Level2FolderName ... ' 12Oct16 Coded ' 20Oct16 Renamed from GetFldrNameStr and amended to return a string array ' rather than a string Dim FldrCrnt As Folder Dim FldrNameCrnt As String Dim FldrNames() As String Dim FldrNamesRev() As String Dim FldrPrnt As Folder Dim InxFN As Long Dim InxFnR As Long Set FldrCrnt = Fldr FldrNameCrnt = FldrCrnt.Name ReDim FldrNamesRev(0 To 0) FldrNamesRev(0) = Fldr.Name ' Loop getting parents until FldrCrnt has no parent. ' Add names of Fldr and all its parents to FldrName as they are found Do While True Set FldrPrnt = Nothing On Error Resume Next Set FldrPrnt = Nothing ' Ensure value is Nothing if following statement fails Set FldrPrnt = FldrCrnt.Parent On Error GoTo 0 If FldrPrnt Is Nothing Then ' FldrCrnt has no parent Exit Do

https://riptutorial.com/ko/home 16

Page 20: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

End If ReDim Preserve FldrNamesRev(0 To UBound(FldrNamesRev) + 1) FldrNamesRev(UBound(FldrNamesRev)) = FldrPrnt.Name Set FldrCrnt = FldrPrnt Loop ' Copy names to FldrNames in reverse sequence so they end up in the correct sequence ReDim FldrNames(0 To UBound(FldrNamesRev)) InxFN = 0 For InxFnR = UBound(FldrNamesRev) To 0 Step -1 FldrNames(InxFN) = FldrNamesRev(InxFnR) InxFN = InxFN + 1 Next GetFldrNames = FldrNames End Function

3.2

TestDefaultFldr() Fldr Fldr . olFolderInbox . Set Fldr = Session.GetDefaultFolder( VB .

Sub TestDefaultFldr() Dim Fldr As Folder Set Fldr = Session.GetDefaultFolder(olFolderInbox) Debug.Print Join(GetFldrNames(Fldr), "|") End Sub

TestDefaultFldr() Outlook data file|Inbox . GetFldrNames(Fldr) . . Store "Output data file" Outlook . Outlook . Outlook " " . . , "Outlook " "Outlook.pst" .

Outlook Parent . GetFldrNames(Fldr) . . . . Join .

3.3

TestFldrChain() .

Sub TestFldrChain() Dim Fldr As Folder Set Fldr = Session.Folders("A").Folders("A2"). _ Folders("A21").Folders("A213") Debug.Print Join(GetFldrNames(Fldr), "|") End Sub

TestFldrChain() : A . A2 A . A21 A2 A213 A21 .

https://riptutorial.com/ko/home 17

Page 21: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

?

Session Folders .

Session.Folders(integer) Part 2 , . Session.Folders("A") .

Session.Folders("A") Folders .

Session.Folders("A").Folders("A2") "A" "A2" .

Folders("x") . .

A, A2, A21 A213 . .

TestFldrChain() A, A2 .

A|A2|A21|A213

3.4

2 . . . Folders("x") .

. . . , . "" . "" . .

ListStoresAndAllFolders() . "Microsoft Scripting Runtime" . VB . () . . . "Microsoft Scripting Runtime" . .

Sub ListStoresAndAllFolders() ' Displays the name of every accessible store ' Under each store, displays an indented list of all its folders ' Technique for locating desktop from answer by Kyle: ' http://stackoverflow.com/a/17551579/973283 ' Needs reference to “Microsoft Scripting Runtime” if "TextStream" ' and "FileSystemObject" are to be recognised Dim FileOut As TextStream Dim FldrCrnt As Folder Dim Fso As FileSystemObject Dim InxFldrCrnt As Long Dim InxStoreCrnt As Long Dim Path As String Dim StoreCrnt As Folder Path = CreateObject("WScript.Shell").SpecialFolders("Desktop") Set Fso = CreateObject("Scripting.FileSystemObject") Set FileOut = Fso.CreateTextFile(Path & "\ListStoresAndAllFolders.txt", True) With Application.Session For InxStoreCrnt = 1 To .Folders.Count Set StoreCrnt = .Folders(InxStoreCrnt) With StoreCrnt

https://riptutorial.com/ko/home 18

Page 22: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

FileOut.WriteLine .Name For InxFldrCrnt = .Folders.Count To 1 Step -1 Set FldrCrnt = .Folders(InxFldrCrnt) Call ListAllFolders(FldrCrnt, 1, FileOut) Next End With Next End With FileOut.Close End Sub Sub ListAllFolders(ByRef Fldr As Folder, ByVal Level As Long, ByRef FileOut As TextStream) ' This routine: ' 1. Output name of Fldr ' 2. Calls itself for each child of Fldr ' It is designed to be called by ListStoresAndAllFolders() Dim InxFldrCrnt As Long With Fldr FileOut.WriteLine Space(Level * 2) & .Name For InxFldrCrnt = .Folders.Count To 1 Step -1 Call ListAllFolders(.Folders(InxFldrCrnt), Level + 1, FileOut) Next End With End Sub

ListStoresAndAllFolders DeskTop "ListStoresAndAllFolders.txt" .

3.5

? . . "Test" . TestMoveFolder() "A" TestMoveFolder() . TestMoveFolder() TestMoveFolder() "" " " .

Sub TestMoveFolder() Dim FldrDest As Folder Dim FldrToMove As Folder Set FldrToMove = Session.Folders("A").Folders("Inbox").Folders("Test") Set FldrDest = Session.Folders("A").Folders("Deleted Items") FldrToMove.MoveTo FldrDest End Sub

3.6

.•

.••

.•

.••

https://riptutorial.com/ko/home 19

Page 23: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

.

3 : : https://riptutorial.com/ko/outlook-vba/topic/8874/--3------

https://riptutorial.com/ko/home 20

Page 24: outlook-vba - RIP Tutorial1: outlook-vba outlook-vba , . outlook-vba . outlook-vba . Examples Outlook VBA . 1 Visual Basic Editor . Outlook 2003 Excel VBA Outlook Visual Basic Editor

S. No

Contributors

1 outlook-vba Community, Tony Dallimore

21 : Outlook Visual Basic Editor

Tony Dallimore

3 2 : Tony Dallimore

4 3 : Tony Dallimore

https://riptutorial.com/ko/home 21