Note: The other languages of the website are Google-translated. Back to English

Excel'de düğme tıklanırsa e-posta nasıl gönderilir?

Excel çalışma sayfasındaki bir düğmeye tıklayarak Outlook üzerinden e-posta göndermeniz gerektiğini varsayarsak, nasıl yapabilirsiniz? Bu makale, bunu ayrıntılarıyla elde etmek için bir VBA yöntemi tanıtacaktır.

VBA kodu ile buton tıklanırsa e-posta gönderin


VBA kodu ile buton tıklanırsa e-posta gönderin

Excel çalışma kitabında bir Komut Düğmesi tıklanırsa Outlook üzerinden bir e-posta göndermek için lütfen aşağıdaki işlemleri yapın.

1. Tıklayarak çalışma sayfanıza bir Komut Düğmesi ekleyin. Geliştirici > Ekle > Komut Düğmesi (ActiveX Kontrolü). Ekran görüntüsüne bakın:

2. Eklenen Komut Düğmesine sağ tıklayın, ardından Kodu Görüntüle aşağıdaki ekran görüntüsü gibi sağ tıklama menüsünden.

3. Açılışta Uygulamalar için Microsoft Visual Basic penceresinde, lütfen Kod penceresindeki orijinal kodu aşağıdaki VBA komut dosyasıyla değiştirin.

VBA kodu: Excel'de düğme tıklanırsa e-posta gönderin

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

notlar:

1). Lütfen e-posta gövdesini ihtiyaç duyduğunuz şekilde değiştirin. xMailBody koddaki satır.

2). Değiştirin Eposta Adresi alıcı e-posta adresi ile aynı hizada .To = "E-posta Adresi".

3). İhtiyaç duyduğunuz Cc ve Bcc alıcılarını belirtin .CC = "" ve .Bcc = "" bölümleri.

4). E-posta konusunu satırda değiştirin .Subject = "Düğmeye tıklayarak e-posta gönderimini test edin".

4. Tuşuna basın. Ara Toplam + Q kapatmak için aynı anda tuşları Uygulamalar için Microsoft Visual Basic pencere.

5. Tıklayarak Tasarım Modunu kapatın. Geliştirici > Tasarım Modu. Ekran görüntüsüne bakın:

Şu andan itibaren, Komut Düğmesine her tıkladığınızda, belirli alıcılar, konu ve gövde ile otomatik olarak bir e-posta oluşturulacaktır. Lütfen e-postayı tıklayarak gönderin Gönder düğmesine basın.

not: VBA kodu yalnızca Outlook'u e-posta programınız olarak kullandığınızda çalışır.

Excel'de oluşturulan posta listesinin alanlarına göre Outlook aracılığıyla kolayca e-posta gönderin:

The Mailleri gönder yarar Kutools for Excel Excel'de oluşturulan posta listesinin alanlarına bağlı olarak Outlook üzerinden e-posta göndermeye yardımcı olur.
Hemen indirin ve deneyin! (30 günlük ücretsiz iz)


İlgili yazılar:


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2019 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay dağıtım. Tam özellikli 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (69)
3.5 üzerinden 5 olarak derecelendirildi · 1 derecelendirme
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, bir pivot tablo verisinden veri göndermek istiyorum, lütfen yardım eder misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Komut dosyasını butona tıkladığınızda yukarıdaki gibi e-postaya eklenip butonu da kaldıracak şekilde yazmak mümkün mü? böylece e-postayla gönderilen dosyanın kopyasında artık düğme yok mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
".Body = xMailBody"nin hemen altına aşağıdakini ekleyin
.Attachments.ActiveWorkbook.FullName ekleyin
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Danie.

Bölümü dediğiniz gibi ekledim, ancak ekli çalışma kitabının bulunduğu e-postada hala düğmeler var.
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba, gönder'e basmama gerek kalmayacak şekilde ayarlamak mümkün mü - e-postayı otomatik olarak gönderiyor????
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Lütfen .Display satırını .Send ile yukarıdaki VBA kodunu değiştirin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
yalnızca bir e-posta oluşturur ve birden çok e-posta taslağı açmak yerine içeriğin üzerine yazmaya devam eder.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, öncelikle Büyük bir teşekkür ederim, bu gönderi çok yardımcı oldu ve ek için çalışıyor. Bu benim için çalışıyor ancak sayfada hiçbir güncelleme kaydedilmiyor, kaydet düğmesine basmanız gerekiyor. Ekin şu anda excel sayfasında ne varsa olmasını istiyorum.

Bunu, Excel'in yerleşik E-posta özelliğini kullanarak başarabilirim, ancak belirli e-posta adresini kodlamam gerektiğinden bir düğme istedim.

Özetle şunu bilmek isterim:

Şunları yapmanın bir yolu olup olmadığını bilmek istiyorum: bir kullanıcı excel çalışma kitabını açtıktan ve düzenlemeler yaptıktan sonra, düğme eki güncellemelerle birlikte tutacak mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Good Day,
Kod optimize edildi. Lütfen bir deneyin ve yorumunuz için teşekkürler.

Özel Alt KomutDüğmesi1_Click ()
'Tarafından güncellendi Extendoffice 2017/9/14
xOutApp'i Nesne Olarak Karartın
Nesne Olarak xOutMail'i Karartın
Dize olarak xMailBody'yi karart
On Error Resume Next
xOutApp = CreateObject("Outlook.Application") olarak ayarlayın
xOutMail = xOutApp.CreateItem(0) olarak ayarlayın
ActiveWorkbook.Save
xMailBody = "Gövde içeriği" & vbNewLine & vbNewLine & _
"Bu satır 1" & vbNewLine & _
"Bu 2. satır"
On Error Resume Next
xOutMail ile
.To = "E-posta Adresi"
.CC = ""
.BCC = ""
.Subject = "Düğmeye tıklayarak e-posta gönderimini test edin"
.Body = xMailBody
.Attachments.ActiveWorkbook.FullName ekleyin
.Göster veya .Gönder'i kullanın
İle bitmek
Hata Dönüsünde 0
xOutMail'i ayarla = Hiçbir şey
xOutApp'ı ayarla = Hiçbir şey
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Düğmeye bastığımda Etkin Çalışma Kitabını e-postaya nasıl ekleyebilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
İyi günler,
".Body = xMailBody"nin hemen altına aşağıdakini ekleyin
.Attachments.ActiveWorkbook.FullName ekleyin
Bu yorum sitedeki moderatör tarafından en aza indirildi
Teria como em vez de enviar bir planilha, enviar olarak informações em imagem?
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu VBA kodunu kullanarak e-postanın gövdesindeki hücre bilgilerine başvurabilir miyim? Örneğin, hücre değerlerini aşağıdaki koda nasıl referans verebilirim?

xMailBody = "Gövde içeriği" & vbNewLine & vbNewLine & _
"Bu satır 1" & vbNewLine & _
"Bu 2. satır"

Ayrıca (.TO = "e-posta adresi") kodunu kullanarak. "e-posta adresi"nin, yanındaki sütundaki bir hücreden bir e-posta adresi çekmesini nasıl sağlayabilirim.


Teşekkürler,
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı çalışma sayfasına ikinci bir e-posta düğmesi eklemek mümkün müdür? Bunu yapmaya çalıştığımda, orijinal e-posta düğmesinden koda bağlanıyor. Teşekkürler.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Her butona farklı kodlar atamanız gerekiyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu VBA kodunu kullanarak e-postanın gövdesindeki hücre bilgilerine başvurabilir miyim? Örneğin, hücre değerlerini aşağıdaki koda nasıl referans verebilirim?

xMailBody = "Gövde içeriği" & vbNewLine & vbNewLine & _
"Bu satır 1" & vbNewLine & _
"Bu 2. satır"

Teşekkürler,
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Glenn,
Lütfen aşağıdaki kodu uygulayın. Yorumun için teşekkür ederim.
xMailBody = [B5]
Bu yorum sitedeki moderatör tarafından en aza indirildi
E-postadaki eki göndermek yerine dosyaya (SharePoint'te bulunur) bir köprü göndermek mümkün müdür?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Laurie,
Sana bu konuda yardımcı olamam. Yorumun için teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Konudaki bir hücredeki değere dize ile başvurabilir miyim? Aşağıdaki bazı varyasyonlar?

.Subject = "Yeni Etkinlik:" & Target.Address = "$B$38"
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Abi,
Lütfen kodu .Subject = "New Event:" & [B38] olarak değiştirin.
Yorumun için teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Orada Merhaba,
Aşağıdaki gereksinim konusunda bana yardımcı olabilecek biri var mı?
İki açılır listeye sahip bir excel sayfam var.

1 açılır liste- departman listesi

2 açılır liste- kategori

Listelerden bir departman ve kategori seçtiğimde istediğim şey;(örneğin departmanda "satış" ve kategoride "aylık rapor" seçersem)

Bu çalışma sayfasının PDF versiyonunu satış ekibine e-posta konusu aylık rapor ile birlikte e-posta ile göndermem gerekiyor.

Departman listesinden "üretim"i seçersem, e-posta üretimdeki bir grup kişiye gitmelidir.

bu konuda bana yardımcı olabilirseniz sevinirim

raşike
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Rasik,
Üzgünüm bu konuda size yardımcı olamam. Forumumuza herhangi bir soru göndermeye hoş geldiniz: https://www.extendoffice.com/forum.html Excel profesyonellerinden veya diğer Excel hayranlarından daha fazla Excel desteği almak için.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Outlook'tan imzamı otomatik olarak eklemek için postayı nasıl alabilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba John,
Aşağıdaki VBA kodu sorunu çözmenize yardımcı olabilir. Yorumun için teşekkürler.

Özel Alt KomutDüğmesi1_Click ()
'Tarafından güncellendi Extendoffice 2019/6/26
xOutApp'i Nesne Olarak Karartın
Nesne Olarak xOutMail'i Karartın
On Error Resume Next
xOutApp = CreateObject("Outlook.Application") olarak ayarlayın
xOutMail = xOutApp.CreateItem(0) olarak ayarlayın
xOutMail ile
.Göster veya .Gönder'i kullanın
.To = "E-posta Adresi"
.CC = ""
.BCC = ""
.Subject = "Düğmeye tıklayarak e-posta gönderimini test edin"
.HTMLBody = "Bu, Excel'de gönderilen bir test e-postasıdır" & "
" & .HTMLBody
'.Göndermek
İle bitmek
Hata Dönüsünde 0
xOutMail'i ayarla = Hiçbir şey
xOutApp'ı ayarla = Hiçbir şey
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
E-posta göndermek için düğmeye basarken bir excel kullanıcısı olmak zorunda mısınız? veya sadece e-postayı alan kişinin bir görünüm kullanıcısı olması mı gerekiyor?
Bu yorum sitedeki moderatör tarafından en aza indirildi
İyi günler,
Excel'de butona tıkladıktan sonra e-postanın Outlook üzerinden gönderilmesi gerektiğinden, çalışması için bilgisayarınızda Outlook'un kurulu olması gerekir.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Excel çalışma sayfasını e-postayla göndermek istiyorum ama göndermiyor. Belgeyi e-posta olarak göndermek için nasıl kod yazarsınız?
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba marcus,
Aşağıdaki VBA kodu, sorunu çözmenize yardımcı olabilir.

Alt SendWorkSheet()
'20190626 güncellemesi
Dize Olarak xFile Dim
Dim xFormat As Long
Çalışma Kitabı Olarak Dim Wb
Çalışma Kitabı Olarak Dim Wb2
FilePath'i Dize Olarak Karartın
Dim DosyaAdı String
OutlookApp'i Nesne Olarak Karartın
OutlookMail'i Nesne Olarak Karartın
On Error Resume Next
Application.ScreenUpdating = Yanlış
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Wb2 = Application.ActiveWorkbook olarak ayarlayın
Vaka Seç Wb.FileFormat
Vaka xlOpenXMLÇalışma Kitabı:
xFile = ".xlsx"
xFormat = xlOpenXMLÇalışma Kitabı
Case xlOpenXMLWorkbookMacroEnabled:
Eğer Wb2.HasVBProject ise
xFile = ".xlsm"
xFormat = xlOpenXMLÇalışma KitabıMakro Etkin
başka
xFile = ".xlsx"
xFormat = xlOpenXMLÇalışma Kitabı
Eğer son
Örnek Excel8:
xFile = ".xls"
xFormat = Excel8
Vaka xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Select End
FilePath = Environ$("temp") & "\"
DosyaAdı = Çb.Adı ve Biçim(Şimdi, "gg-aa-yy s-aa-ss")
OutlookApp = CreateObject("Outlook.Application") olarak ayarlayın
OutlookMail = OutlookApp.CreateItem(0) olarak ayarlayın
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
OutlookMail ile
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte özellikleri"
.Body = "Lütfen bu belgeyi kontrol edin ve okuyun."
.Ekler.Wb2.FullName Ekle
.Görüntüle
'.Göndermek
İle bitmek
Wb2.Kapat
FilePath & FileName & xFile'ı öldür
OutlookMail'i Ayarla = Hiçbir Şey
OutlookApp'i Ayarla = Hiçbir Şey
Application.ScreenUpdating = True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Düğmeye bastığımda Etkin Çalışma Sayfasını e-postaya nasıl ekleyebilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Grant,
Lütfen düğmeye sağ tıklayın ve Kodu Görüntüle'yi seçin, ardından aşağıdaki kodu Private Sub ve End Sub satırları arasına kopyalayın. Umarım yardımcı olabilirim. Yorumun için teşekkürler.

Dize Olarak xFile Dim
Dim xFormat As Long
Çalışma Kitabı Olarak Dim Wb
Çalışma Kitabı Olarak Dim Wb2
FilePath'i Dize Olarak Karartın
Dim DosyaAdı String
OutlookApp'i Nesne Olarak Karartın
OutlookMail'i Nesne Olarak Karartın
On Error Resume Next
Application.ScreenUpdating = Yanlış
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Wb2 = Application.ActiveWorkbook olarak ayarlayın
Vaka Seç Wb.FileFormat
Vaka xlOpenXMLÇalışma Kitabı:
xFile = ".xlsx"
xFormat = xlOpenXMLÇalışma Kitabı
Case xlOpenXMLWorkbookMacroEnabled:
Eğer Wb2.HasVBProject ise
xFile = ".xlsm"
xFormat = xlOpenXMLÇalışma KitabıMakro Etkin
başka
xFile = ".xlsx"
xFormat = xlOpenXMLÇalışma Kitabı
Eğer son
Örnek Excel8:
xFile = ".xls"
xFormat = Excel8
Vaka xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Select End
FilePath = Environ$("temp") & "\"
DosyaAdı = Çb.Adı ve Biçim(Şimdi, "gg-aa-yy s-aa-ss")
OutlookApp = CreateObject("Outlook.Application") olarak ayarlayın
OutlookMail = OutlookApp.CreateItem(0) olarak ayarlayın
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
OutlookMail ile
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte özellikleri"
.Body = "Lütfen bu belgeyi kontrol edin ve okuyun."
.Ekler.Wb2.FullName Ekle
.Görüntüle
'.Göndermek
İle bitmek
Wb2.Kapat
FilePath & FileName & xFile'ı öldür
OutlookMail'i Ayarla = Hiçbir Şey
OutlookApp'i Ayarla = Hiçbir Şey
Application.ScreenUpdating = True
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Dosya adını e-postaya eklendiğinde geçerli tarihe değiştirmenin bir yolu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Bir sayfa üzerinde çalışıyorum ama bitiremiyorum. umarım bana yardım edebilirsin :)

Dosyanın kendisi bir xltm (şablon) olmalı ve postaya kendi sayfasını eklemelidir.

Ve bir otomatik imza, o zaman çok mutlu olurum.

Şimdiden teşekkürler / Dr. Nang
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, 80 ayrı bar hesabıyla bir elektronik tablo çalıştırıyorum ve bu sayfada VBA kodunu çok başarılı bir şekilde kullandım. Ancak, e-postanın gövdesinde, müşterinin bir geçmişe sahip olabilmesi için gönderirken bir hesabın belirli hücre aralığını kopyalayıp yapıştırmak istiyorum. Bunun için VBA kodu ile yardımcı olabilir misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba! Bunun için çok teşekkür ederim. Harika bir yardım oldu.

Tam çalışma kitabı yerine bir düğmeye basarak aktif bir çalışma sayfası göndermek mümkün müdür?

Teşekkürler!
Buraya henüz hiç yorum yapılmamış
Daha Çok
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar