MS Outlook'a eklenti

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Eğer bilgisayarınızda e-posta programı olarak MS Outlook kullanıyorsanız ve bilgisayarınızda siz çalışırken ikide bir gelen mailleri iş icabı veya meraktan açıp da ".... acaba ne geldi ?" diye bakmak için işinizi bırakıp, gelen iletileri açmakla uğraşıp da artık benim gibi siz de bundan bıktıysanız, belki işinizi biraz kolaylaştırabilirim .... :mrgreen:

Bu iş için MS Outlook altında VBA ile ufak bir kod hazırladım.

Yaptığı iş kısaca şu;

- MS Outlook açık iken ve siz herhangibir dosya üzerinde çalışırken veya internette birşeyler araştırken yeni bir e-posta geldiğinde, ekranın sağ alt köşesindeki görev çubuğunun hemen üzerinde (.... hani, saat - hoparlör vb ıvır-zıvır ikonların olduğu yer) otomatik olarak ufak bir UserForm ortaya çıkacak ve size o anda gelen e-postanın kimden geldiğini, konusunu ve mesaj içeriğinin belli bir kısmını görebileceksiniz.

- Böylece siz, içeriğine şöyle bir göz atıp UserForm'u kapatıp kaldığınız yerden işinize devam edebilecek veya önemli bir mail ise, gidip MS Outlook'dan sözkonusu e-postanızı açacaksınız.

- Eğer bu işi yapmak isteseniz

1) Ekli zip dosyasını indirip, içindekileri (UserForm1.frm ve UserForm1.frx dosyaları) örneğin masaüstüne açın.

2) MS Outlook programını açın ve Alt + F11 tuşlarına birlikte basarak Visual Basic Editör'ü açın.

3) Editörde menülerden, File >> Import File menüsünü çalıştırın ve gelen ekrandan UserForm1.frm dosyasını seçin ve açın.

4) Böylece, UserForm1 sizin MS Outlook uygulamanıza dahil olmuş oldu. Şimdi, editörde sol tarafta ThisOutlookSession yazan yeri çift tıklayın. Bu, MS Excel'deki ThisWorkbook modülü'nün MS Outlokk' daki karşılığıdır. Siz, çift tıkladıktan sonra, sağ taraftaki kod penceresine aşağıdaki kodları buradan kopyalayarak, yapıştırın.

Kod:
Private Sub Application_NewMail()
    Dim MyOutlook As Object
    Dim NS As Object
    Dim NewMail As Object
    Dim MyInbox As Object
    Set MyOutlook = CreateObject("Outlook.Application")
    Set NS = MyOutlook.GetNamespace("MAPI")
    Set MyInbox = NS.GetDefaultFolder(olFolderInbox)
    Set NewMail = MyInbox.Items(MyInbox.Items.Count)
    
    With UserForm1
        .Label3.Caption = NewMail.SenderName
        .Label4.Caption = NewMail.Subject
        .Label5.Caption = NewMail.Body
        .Show
    End With
    
    Set NewMail = Nothing
    Set MyInbox = Nothing
    Set NS = Nothing
    Set MyOutlook = Nothing
End Sub
5) Evet..... her şey yolunda gittiyse, editörün menü çubuğundan yaptığınız bu çalışmayı kaydedin ve editör penceresini kapatın.

6) Şimdi, bir deneme yapmak için MS Outlook ile kendi kendinize bir e-posta yollayın. Bakalım, oldu mu ?

Söz konusu zip dosyası da ektedir ...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Değerli dostum

Az önce denedim. Eline sağlık çok güzel çalışıyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sağol dostum,

İcatlar, ihtiyaçtan doğar ... :mrgreen:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Hocam bir kaç düzeltme yapılırsa çok daha güzel olur,

birincisi, kod çalışmadan önce her seferinde erişim izni isteyen bir uyarı mesajı çıkıyor, bunu onaylamak gerekiyor. Bu uyarı mesajını engelleyecek bir kod ilavesi yada manuel bir ayar gerekiyor. (manuel bir ayarı varmı bilmiyorum.)

ikincisi peşpeşe birden fazla e-mail geldiğinde sadece ilkini gösteriyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Erişim izni problemiyle ben Office2000' de karşılaşmadım, bilmiyorum ....

Belki senin kullandığın Outlook versiyonunun bir yerinde ya da VBA kısmında bir güvenlik ayarı vardır. Belki de kullandığın antivirüs buna neden olabilir.

Bahsettiğin diğer konu da şu;

Yeni bir e-mail geldiğinde, UserForm üzerinde o sırada en son mesaj hangisi ise o belirir. Yani, UserForm kapanana kadar ...

Yine de bir bakarım ... :mrgreen:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Uyarı mesajı aşağıdaki gibidir.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Evet dostum ....

Daha önceden dediğim gibi, sorun senin kullandığın versiyonun daha güvenlikli olarak hazırlanmasından kaynaklanıyor. Yani, kullandığın MS Outlook'un bir güvenlik uygulaması.

Bu arada, belki PC'e kurduğun bir ServicePack ile de bu güvenlik yaması gelmiş olabilir.

Office2000'i seviyorum .... :mrgreen:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Aşağıdaki linkte ücretsiz bir eklenti var.

Sanırım, MS Outlook için bu tip can sıkıcı güvenlik uyarılarını kullanıcı kendi isteklerine göre engelleyebiliyor.

http://www.mapilab.com/outlook/security/
 
Üst