ฉันจะเขียนแมโครใน Outlook 2010 เพื่อตั้งค่าคุณสมบัติโฟลเดอร์ทั้งหมดเป็น“ ดูรายการทั้งหมด” ได้อย่างไร


0

ฉันจะเขียนแมโครเพื่อตั้งค่าคุณสมบัติโฟลเดอร์ทั้งหมดเป็น "ดูรายการทั้งหมด" ได้อย่างไร ฉันมีหลายร้อยโฟลเดอร์และโฟลเดอร์ย่อยและจำเป็นต้องตั้งค่าโฟลเดอร์เพื่อดูรายการทั้งหมดและฉันไม่สามารถหาวิธีเขียนแมโครได้ ในที่สุดก็ตัดสินใจว่าฉันต้องการความช่วยเหลือ นี่ควรเป็นการตั้งค่าในมุมมองที่คล้ายกับการตั้งค่าเริ่มต้นที่เก็บถาวร


คุณลองทำอะไรบ้าง? คุณติดอยู่กับบางสิ่งที่เฉพาะเจาะจงหรือไม่?
เดฟ M

คำตอบ:


0

คำขอของคุณที่จะสอนให้คุณเขียนแมโครอาจกว้างเกินไป ดังนั้นนี่คือคำตอบสำหรับวิธีการขยายโฟลเดอร์ทั้งหมด

http://www.msoutlook.info/question/595 และ
http://vboffice.net/sample.html?lang=th&mnu=2&smp=57&cmd=showitem

คุณอาจตัดสินใจที่จะขยายโฟลเดอร์ทั้งหมดเมื่อจำเป็นไม่จำเป็นต้องเริ่มทำงาน

"ตัวอย่างนี้เปิดต้นไม้ทั้งหมดเมื่อเริ่มต้นและมันเป็นปรากฏการณ์ ...

มีตัวแปร 'ExpandDefaultStoreOnly' ในขั้นตอน 'ExpandAllFolders' ด้วยค่าปัจจุบัน (จริง) เฉพาะโฟลเดอร์ส่วนบุคคลที่ได้รับการขยาย หากคุณต้องการขยายกล่องจดหมายที่มีอยู่ทั้งหมด (คลังข้อมูล Exchange) ให้ตั้งค่าตัวแปร = False "

http://vboffice.net/sample.html?lang=en&mnu=2&smp=57&cmd=showitem

Private Sub Application_Startup()
    ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
On Error Resume Next
Dim Ns As Outlook.NameSpace
Dim Folders As Outlook.Folders
Dim CurrF As Outlook.MAPIFolder
Dim F As Outlook.MAPIFolder
Dim ExpandDefaultStoreOnly As Boolean

ExpandDefaultStoreOnly = True

Set Ns = Application.GetNamespace("Mapi")
Set CurrF = Application.ActiveExplorer.CurrentFolder

If ExpandDefaultStoreOnly = True Then
    Set F = Ns.GetDefaultFolder(olFolderInbox)
    Set F = F.Parent
    Set Folders = F.Folders
    LoopFolders Folders, True

Else
    LoopFolders Ns.Folders, True
End If

DoEvents
Set Application.ActiveExplorer.CurrentFolder = CurrF
End Sub

Private Sub LoopFolders(Folders As Outlook.Folders, _
    ByVal bRecursive As Boolean)

Dim F As Outlook.MAPIFolder

For Each F In Folders
    Set Application.ActiveExplorer.CurrentFolder = F
    DoEvents

    If bRecursive Then
        If F.Folders.Count Then
            LoopFolders F.Folders, bRecursive
      End If
    End If
Next
End Sub

นี่ไม่ใช่สิ่งที่เขาต้องการ
thims

0

สคริปต์ต่อไปนี้จะตั้งค่าโฟลเดอร์ย่อยทั้งหมดของกล่องจดหมายเข้าในที่เก็บเริ่มต้นเพื่อแสดงจำนวนรายการทั้งหมด:

Private Sub ShowTotalCount(Folders As Folders)
    For Each Folder In Folders
        Folder.ShowItemCount = olShowTotalItemCount
        ShowTotalCount Folder.Folders
    Next
End Sub

Sub ShowTotalCountAll()
    ShowTotalCount Session.DefaultStore.GetDefaultFolder(olFolderInbox).Folders
End Sub

เพียงวางไปที่ThisOutlookSessionใน Outlook VBA (กด ALT + F11 เพื่อเปิด) หลังจากนั้นเรียกใช้แมโครShowTotalCountAllโดยกด F5

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.