Macro genel olarak 2 kısma ayrılıyor. İlk kısım bir frmOtoReply adlı bir userform ve görünümü aşağıdaki şekilde

Çalışma mantığı çok basit. Form ilk çalıştığında aşağıdaki kod çalışarak folderID değişkeninde belirtilen dizindeki (ki bu dizini bir public folder yaparak herkezin ortak erişimini sağlayabilirsiniz) postaları okuyor ve cmbBaslik isimli combobox'a yüklüyor.
'Dizindeki tüm mesajların başlıklarını combobox'a yükle
For msgno = 1 To dizin.Items.Count
cmbBaslik.AddItem (dizin.Items.Item(msgno).Subject)
Next
Buradaki folderID aslından exchange'deki her folder'ın sahip olduğu bir tekil numara (uniqid). Bu numara fedef dizin Outlook'dan seçildikten sonra form'u çalıştırıp Ekle düğmesine sağ tıklanarak elde edilebilir. Ben bunu yapan aşağıdaki kodu btnEkle düğmesinin MouseDown event'ine ekledim.
'Eğer Ekle düğmesine sağ tıklanırsa seçili dizinin FolderID 'sini textbox'a yaz
If Button = olMouseButtonRight Then
cmbBaslik.Text = ActiveExplorer.CurrentFolder.EntryID
Exit Sub
End If
Ve en sonunda Ekle düğmesine yazılan aşağıdaki kod sayesinde seçilen postanın içeriği açılan postanın başına eklenir, fakat bu ekleme yapılmadan ActiveInspector.CurrentItem item'ının BodyFormat property'si sayesinde önce postanın içeriğinin HTML olup olmadığı kontrol edilir ve içerik HTML ise eklenecek postanın HTML kodu, değilse düz yazı kodu eklenir.
'Eğer aktif email HTML ise HTML olarak diğer formatlarda ise Plain text olarak yazıyı ekle
If ActiveInspector.CurrentItem.BodyFormat = olFormatHTML Then
ActiveInspector.CurrentItem.HTMLBody = _
dizin.Items.Item(cmbBaslik.ListIndex _
+ 1.HTMLBody & ActiveInspector.CurrentItem.HTMLBody
Else
ActiveInspector.CurrentItem.Body = _
dizin.Items.Item(cmbBaslik.ListIndex + 1).Body & _
ActiveInspector.CurrentItem.Body
End If
Bu formun kodunu ve formun kendisini aşağıdaki linklerden indirebilirsiniz.
Kod:
http://rapidshare.com/files/39623797/frmOtoReply_kod.txt.html
Form:
http://rapidshare.com/files/39623944/frmOtoReply.rar.html
Son olarak kodun ikinci kısmı ise bu formu çağıran çok basit bir yordamdan oluşuyor. Bu kodu da Outlook'u içinde bir macro'ya yazarak çalıştırabilirsiniz.
Sub otocvp()
frmOtoReply.Show
End Sub

