Outlook'ta Gelen İletinin Konusunu Değiştiren Sağ Tuş Menüsü

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba,

Outlook üzerinde İletilere sağ tıklayınca açılan menüye "İletinin Konusunu Değiştir" seçeneği ekleyip buna basınca gelen inputbox'a girilen değeri ilgili iletinin konusu olarak belirlemek istiyorum.

Yardımcı olabilir misiniz?



Office versiyonu: 2010
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Çözüm

Yeniden Merhaba,

Biraz araştırma ile iki farklı sitede bulduğum kodları birleştirerek sorunumu çözdüm.

İleride ihtiyaç duyanlar olabilir diye buradan da paylaşıyorum.


Outlook'da VBE penceresinde "This Outlook Session" kısmına aşağıdaki kodları girin;

Kod:
Option Explicit
Private myCustomContextMenus As ClsKonuyuDegistir
Private Sub Application_Quit()
    Set myCustomContextMenus = Nothing
End Sub
Private Sub Application_Startup()
    Set myCustomContextMenus = New ClsKonuyuDegistir
End Sub

Ardından "Insert > Class Module" seçeneği ile Outlook oturumunuza yeni bir Class Module Ekleyin

Eklediğiniz Class Module'in adını "Class1" 'den "ClsKonuyuDegistir" 'e değiştirin.

Oluşturduğunuz bu class'a aşağıdaki kodları girin.

Kod:
Option Explicit
Private WithEvents objOL As Outlook.Application
Private WithEvents objKonuyuDegistir As Office.CommandBarButton
Dim objNS As Outlook.NameSpace
Private Sub Class_Initialize()
On Error GoTo Class_Initialize_Error
    Set objOL = Outlook.Application
    Set objNS = objOL.GetNamespace("MAPI")
    On Error GoTo 0
    Exit Sub
Class_Initialize_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Class_Initialize of Class Module clsCustomContextMenus"
End Sub
Private Sub Class_Terminate()
On Error Resume Next
    Set objOL = Nothing
    Set objNS = Nothing
End Sub

Private Sub objKonuyuDegistir_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
On Error GoTo KonuyuDegistir_Hata
Dim objItem As Object
Dim YeniKonu As String
    For Each objItem In objOL.ActiveExplorer.Selection
    YeniKonu = InputBox("İletinin yeni konusunu giriniz.", "Konu Değiştir", objItem.Subject)
        If YeniKonu = vbNullString Then Exit Sub
    objItem.Subject = YeniKonu
    objItem.Save
    Next
    Set objItem = Nothing

    On Error GoTo 0
    Exit Sub
KonuyuDegistir_Hata:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure MoveToFolder of Class Module clsCustomContextMenus"
    Resume Next
End Sub

Private Sub objOL_ContextMenuClose(ByVal ContextMenu As OlContextMenu)
On Error GoTo objOL_ContextMenuClose_Error
    Select Case ContextMenu
        Case olItemContextMenu
            Set objKonuyuDegistir = Nothing
    End Select
    On Error GoTo 0
    Exit Sub
objOL_ContextMenuClose_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure objOL_ContextMenuClose of Class Module clsCustomContextMenus"
    Resume Next
End Sub

Private Sub objOL_ItemContextMenuDisplay(ByVal CommandBar As Office.CommandBar, ByVal Selection As Selection)
On Error GoTo objOL_ItemContextMenuDisplay_Error
    Dim objItem As Object
    Dim blnFoundItem  As Boolean
    Dim objCBB As Office.CommandBarButton
    For Each objItem In Selection
        If objItem.Class = olMail Or objItem.Class = olPost Then
            blnFoundItem = True
            Exit For
        End If
    Next
    If blnFoundItem = False Then GoTo Exitt:
    Set objCBB = CommandBar.Controls.Item(1)
    objCBB.BeginGroup = True
    Set objCBB = CommandBar.Controls.Add(msoControlButton, , , , True)
    objCBB.Style = msoButtonWrapCaption
    objCBB.Caption = "İleti Konusunu Değiştir"
    objCBB.BeginGroup = True
    Set objKonuyuDegistir = objCBB

Exitt:
    Set objCBB = Nothing
    Set objItem = Nothing
    On Error GoTo 0
    Exit Sub
objOL_ItemContextMenuDisplay_Error:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure objOL_ItemContextMenuDisplay of Class Module clsCustomContextMenus"
End Sub

Outlook'u kapatıp açın (Makroları etkinleştirmeyi unutmadan).

Bu kadar.

Artık herhangi bir iletiye sağ tuş ile tıkladığınızda açılan standart menünün en sonuna "İleti Konusunu Değiştir" başlıklı bir seçenek eklendiğini göreceksiniz.

Buna tıklayarak bu iletinin (veya seçeceğiniz birden fazla iletinin) konusunu değiştirebilirsiniz.



Kaynak:
http://help.lockergnome.com/office/script-change-subject-line-incoming-mail--ftopict709639.html Konuyu Değiştiren kod.

http://blogs.officezealot.com/legault/archive/2007/07/03/20442.aspx sağ tuş menüsüne yeni komut ekleyen kod.


Not: Çözüm, Office 2007 ve Office 2010 sürümleri içindir.
Denemedim, fakat anladığım kadarıyla Office 2003 sürümü için menü oluşturmada bu kod hata veriyormuş...
 
Üst