Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA

Θα σας δείξουμε πώς μπορείτε να ρυθμίσετε τα αυτοματοποιημένα μηνύματα ηλεκτρονικού ταχυδρομείου από το Excel χρησιμοποιώντας τα Collaboration Data Objects (CDO) και τα scripts VBA. Τα πρότυπα κωδικών μας κάνουν αυτό πολύ πιο εύκολο από ό, τι ακούγεται!

Θα σας δείξουμε πώς μπορείτε να ρυθμίσετε τα αυτοματοποιημένα μηνύματα ηλεκτρονικού ταχυδρομείου από το Excel χρησιμοποιώντας τα Collaboration Data Objects (CDO) και τα scripts VBA.  Τα πρότυπα κωδικών μας κάνουν αυτό πολύ πιο εύκολο από ό, τι ακούγεται!
Διαφήμιση

Ενημερώθηκε από τον Brad Jones στις 4 Ιουλίου 2017.

Η χρήση μηνυμάτων ηλεκτρονικού ταχυδρομείου ως μέρος οποιουδήποτε προγράμματος είναι ένας καλός τρόπος για την αυτοματοποίηση σημαντικών εργασιών και επίσης βελτιώνει σημαντικά την αξία και τη λειτουργικότητα οποιουδήποτε προγράμματος ή δέσμης ενεργειών.

Στο παρελθόν, έχω χρησιμοποιήσει ένα μεγάλο κομμάτι ηλεκτρονικού ταχυδρομείου σε εργασίες δέσμης και άλλα αυτοματοποιημένα σενάρια, τα οποία έχουν περιγραφεί σε προηγούμενα άρθρα σχετικά με τη χρήση εργαλείων όπως Sendmail Αποστολή αυτοματοποιημένων μηνυμάτων ηλεκτρονικού ταχυδρομείου μέσω του SendEmail & Windows Task Scheduler Αποστολή αυτοματοποιημένων μηνυμάτων ηλεκτρονικού ταχυδρομείου χρησιμοποιώντας το SendEmail & Windows Task Χρονοπρογραμματιστής Δεν έχει σημασία τι είναι η δουλειά σου, συνήθως ο καθένας σε κάποιο σημείο πρέπει να στείλει email σε έναν προϊστάμενο ή έναν επόπτη με ημερήσιες, εβδομαδιαίες ή μηνιαίες αναφορές κατάστασης. Διαβάστε περισσότερα ή Blat για την έκδοση μηνυμάτων ηλεκτρονικού ταχυδρομείου κατευθείαν από τη γραμμή εντολών Εύκολα να στείλετε μηνύματα γραμμής εντολών με το Blat Εύκολα να στείλετε μηνύματα γραμμής εντολών με Blat Blat. Δεν είναι ακριβώς η λέξη που οραματίζετε θα είναι το όνομα ενός εργαλείου που μπορείτε να χρησιμοποιήσετε για να στείλετε μηνύματα ηλεκτρονικού ταχυδρομείου σε οποιονδήποτε στον κόσμο, από οποιαδήποτε εφαρμογή ή εργαλείο λογισμικού που ... Read More, ή μέσα από ένα σενάριο γραμμής εντολών.

Αυτά είναι ωραία για εκείνους τους χρόνους όταν έχετε ένα σενάριο που παρακολουθεί την υγεία ενός υπολογιστή ή την κατάσταση μιας συγκεκριμένης διαδικασίας, αλλά τι γίνεται αν θέλετε να αυτοματοποιήσετε την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από προϊόντα του Microsoft Office όπως το Word ή το Excel;

Υπάρχουν πολλοί λόγοι για τους οποίους μπορεί να θέλετε να το κάνετε. Ίσως έχετε προσωπικό που ενημερώνει τα έγγραφα ή τα υπολογιστικά φύλλα σε εβδομαδιαία βάση και θέλετε να λάβετε μια ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σχετικά με το πότε πραγματοποιούνται αυτές οι ενημερώσεις και μάλιστα μια αναφορά των δεδομένων από αυτά τα φύλλα. Υπάρχουν μερικές τεχνικές που μπορείτε να χρησιμοποιήσετε για να προγραμματίσετε αυτοματοποιημένα μηνύματα ηλεκτρονικού ταχυδρομείου από το Excel, αλλά τα Collaboration Data Objects (CDO) παραμένουν τα αγαπημένα μου.

Αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από μέσα στο Microsoft Excel

Σκέφτεστε πιθανώς ότι η γραφή του εξερχόμενου ηλεκτρονικού ταχυδρομείου σε ένα σενάριο Excel VBA θα είναι πολύ περίπλοκο. Λοιπόν, αυτό δεν συμβαίνει καθόλου.

Το CDO είναι ένα στοιχείο ανταλλαγής μηνυμάτων που χρησιμοποιείται στα Windows για μερικές γενιές του λειτουργικού συστήματος. Κάποτε ονομάζεται CDONTS και στη συνέχεια με την εμφάνιση των Windows 2000 και XP, αντικαταστάθηκε με το "CDO για τα Windows 2000". Αυτό το στοιχείο περιλαμβάνεται ήδη στην εγκατάσταση VBA σας μέσα στο Microsoft Word ή το Excel και είναι έτοιμο προς χρήση.

Χρησιμοποιώντας το στοιχείο καθιστά εξαιρετικά εύκολη την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου από τα προϊόντα των Windows με VBA. Σε αυτό το παράδειγμα, πρόκειται να χρησιμοποιήσω το στοιχείο CDO στο Microsoft Excel για να στείλω ένα μήνυμα ηλεκτρονικού ταχυδρομείου που θα παραδώσει τα αποτελέσματα από ένα συγκεκριμένο κελί Excel.

Δημιουργήστε μια μακροεντολή VBA

Το πρώτο βήμα είναι να μεταβείτε στην καρτέλα του Excel Developer .

Μέσα στην καρτέλα Προγραμματιστής, κάντε κλικ στην επιλογή Εισαγωγή στο πλαίσιο ελέγχου και, στη συνέχεια, επιλέξτε ένα κουμπί εντολής.

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA χωρίς τίτλο

Σχεδιάστε το στο φύλλο και στη συνέχεια δημιουργήστε μια νέα μακροεντολή για αυτό.

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA, δημιουργήστε μακροεντολή

Όταν το Microsoft Excel ανοίγει τον επεξεργαστή VBA, θα πρέπει να προσθέσετε την αναφορά στη βιβλιοθήκη CDO. Μεταβείτε στο Εργαλεία > Αναφορές στον επεξεργαστή.

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας αναφορές σε δέσμες ενεργειών του VBA

Κάντε κύλιση προς τα κάτω στη λίστα, μέχρι να βρείτε το Microsoft CDO για τη Βιβλιοθήκη των Windows 2000 . Επιλέξτε το πλαίσιο ελέγχου και κάντε κλικ στο κουμπί OK .

Πώς να στείλετε τα μηνύματα ηλεκτρονικού ταχυδρομείου από ένα υπολογιστικό φύλλο Excel Χρησιμοποιώντας τα scripts VBA microsoft cdo

Ρύθμιση του CDO από και προς πεδία

Τώρα είστε έτοιμοι να χρησιμοποιήσετε το CDO για να εκδώσετε μηνύματα ηλεκτρονικού ταχυδρομείου από το Microsoft Excel. Για να γίνει αυτό, πρέπει πρώτα να δημιουργήσετε τα αντικείμενα αλληλογραφίας και να ρυθμίσετε όλα τα πεδία που είναι απαραίτητα για την αποστολή του μηνύματος ηλεκτρονικού ταχυδρομείου. Λάβετε υπόψη ότι ενώ πολλά από τα πεδία είναι προαιρετικά, απαιτούνται τα πεδία " Από και προς" .

 Dim CDO_Mail ως αντικείμενο αντικειμένου Dim CDO_Config ως αντικείμενο Dim SMTP_Config ως παραλλαγή Dim strSubject ως String Dim strFrom ως συμβολοσειρά Dim strTo ως String Dim strCc ως String Dim strBcc ως String Dim strBody ως String strSubject = "Αποτελέσματα από υπολογιστικό φύλλο Excel" strFrom = "ryxxxxxx @ xxxxxcast .net "strTo =" [email protected] "strCc =" "strBcc =" "strBody =" Τα συνολικά αποτελέσματα για αυτό το τρίμηνο είναι: "& Str (Sheet1.Cells (2, 1)) 

Το δροσερό πράγμα για αυτό είναι ότι μπορείτε να δημιουργήσετε οποιαδήποτε συμβολοσειρά που θέλετε να προσαρμόσετε ένα πλήρες μήνυμα ηλεκτρονικού ταχυδρομείου και να την αντιστοιχίσετε στη μεταβλητή strBody . Συνδυάστε τα στοιχεία του μηνύματος χρησιμοποιώντας τη συμβολοσειρά & για να εισαγάγετε δεδομένα από οποιοδήποτε από τα φύλλα του Microsoft Excel απευθείας στο μήνυμα ηλεκτρονικού ταχυδρομείου, ακριβώς όπως έχω δει παραπάνω.

Ρυθμίστε το CDO να χρησιμοποιεί ένα εξωτερικό SMTP

Η επόμενη ενότητα του κώδικα είναι όπου θα ρυθμίσετε το CDO να χρησιμοποιεί οποιονδήποτε εξωτερικό διακομιστή SMTP που θέλετε να χρησιμοποιήσετε. Σε αυτή την περίπτωση, δεν χρειάζεται να χρησιμοποιήσω SSL επειδή ο διακομιστής SMTP δεν το απαιτεί. Το CDO είναι ικανό για SSL, αλλά αυτό είναι εκτός του πεδίου εφαρμογής αυτού του άρθρου. Αν χρειαστεί να χρησιμοποιήσετε το SSL, συνιστώ ανεπιφύλακτα την καταγραφή του Paul Sadowski για τη χρήση του CDO.

 Ορισμός CDO_Mail = CreateObject ("CDO.Message") Σφάλμα GoTo Σφάλμα_Χειρισμός Set CDO_Config = CreateObject ("CDO.Configuration") CDO_Config.Load -1 Ρύθμιση SMTP_Config = CDO_Config.Fields με SMTP_Config .Item ("http://schemas.microsoft .com / cdo / configuration / sendusing ") = 2 .Item (" http://schemas.microsoft.com/cdo/configuration/smtpserver ") =" smtp.gmail.com ".Item (" .microsoft.com / cdo / configuration / smtpauthenticate ") = 1 .Item (" http://schemas.microsoft.com/cdo/configuration/sendusername ") =" [email protected] ".Item (" http: /schemas.microsoft.com/cdo/configuration/sendpassword ") =" κωδικός πρόσβασης ".Item (" http://schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25 .Item (" http: // σχήματα .microsoft.com / cdo / configuration / smtpusessl ") = Αληθές .Κλείσιμο ενημερώσεων με το με το CDO_Mail Set .Configuration = CDO_Config End With 

Ολοκλήρωση του CDO Setup

Τώρα που έχετε ρυθμίσει τη σύνδεση στο διακομιστή SMTP για την αποστολή του μηνύματος ηλεκτρονικού ταχυδρομείου, πρέπει να συμπληρώσετε τα κατάλληλα πεδία για το αντικείμενο CDO_Mail και να εκδώσετε την εντολή Αποστολή . Εδώ είναι πώς το κάνετε αυτό:

 CDO_Mail.Subject = strSubject CDO_Mail.From = strFrom CDO_Mail.To = strTo CDO_Mail.TextBody = strBody CDO_Mail.CC = strCc CDO_Mail.BCC = strBcc CDO_Mail.Send Error_Handling: Αν Err.Description "" Στη συνέχεια MsgBox Err.Description 

Έτσι το έχετε. Δεν θα υπάρχουν αναδυόμενα παράθυρα ή μηνύματα προειδοποίησης ασφαλείας, τα οποία μπορεί να συμβούν όταν καταφύγετε στη χρήση του αντικειμένου αλληλογραφίας του Outlook. Το CDO τοποθετεί απλά το μήνυμα ηλεκτρονικού ταχυδρομείου και χρησιμοποιεί τις λεπτομέρειες σύνδεσης διακομιστή SMTP για να εκτοξεύσει το μήνυμα. Είναι ίσως ο ευκολότερος τρόπος που γνωρίζω ότι ενσωματώνει το ηλεκτρονικό ταχυδρομείο σε σενάρια Microsoft Word ή Excel VBA.

Ακολουθεί το μήνυμα που μοιάζει με το μήνυμα που έλαβα στα εισερχόμενά μου:

Πώς να στείλετε μηνύματα ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA που λειτουργούν με ηλεκτρονικό ταχυδρομείο

Αντιμετώπιση προβλημάτων

Εάν λάβετε ένα σφάλμα που διαβάζει Η μεταφορά απέτυχε να συνδεθεί στο διακομιστή, βεβαιωθείτε ότι έχετε εισαγάγει το σωστό όνομα χρήστη, κωδικό πρόσβασης, διακομιστή SMTP και αριθμό θύρας στις γραμμές κώδικα που παρατίθενται κάτω από το SMTP_Config .

Αυτοματοποίηση της διαδικασίας

Είναι καλό και καλό να μπορείτε να στέλνετε πληροφορίες από το Microsoft Excel ως ένα μήνυμα ηλεκτρονικού ταχυδρομείου με το πάτημα ενός κουμπιού. Ωστόσο, ίσως να θέλετε να χρησιμοποιήσετε αυτή τη λειτουργία σε τακτική βάση, οπότε θα ήταν λογικό να αυτοματοποιήσετε τη διαδικασία. 5 Πόροι για τις μακροεντολές του Excel για την αυτοματοποίηση των υπολογιστικών φύλλων σας 5 Πόροι για τις μακροεντολές του Excel για την αυτοματοποίηση των υπολογιστικών φύλλων σας Αναζήτηση μακροεντολών του Excel; Εδώ είναι πέντε τοποθεσίες που έχουν αυτό που ψάχνετε. Διαβάστε περισσότερα .

Για να γίνει αυτό, θα χρειαστεί να αλλάξουμε τη μακροεντολή που δημιουργήσαμε. Προχωρήστε στον Επεξεργαστή της Visual Basic και αντιγράψτε και περάστε ολόκληρο τον κώδικα που δημιουργήσαμε. Στη συνέχεια, επιλέξτε το ThisWorkbook από την ιεραρχία του έργου .

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας το εγχειρίδιο εργασίας του VBA

Αντιγράψτε και επικολλήστε τον κώδικα σας στο ThisWorkbook . Στη συνέχεια, αντικαταστήστε την πρώτη γραμμή με το Sub Workbook_Open () . Αυτό θα εκτελέσει τη μακροεντολή κάθε φορά που θα ανοίξετε το αρχείο.

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας το βιβλίο εργασίας VBA Scripts ανοιχτό

Στη συνέχεια, ανοίξτε το Task Scheduler . Θα χρησιμοποιήσουμε αυτό το εργαλείο για να ζητήσουμε από τα Windows να ανοίξουν αυτόματα το υπολογιστικό φύλλο σε τακτά χρονικά διαστήματα, οπότε θα ξεκινήσει η μακροεντολή μας, στέλνοντας το μήνυμα ηλεκτρονικού ταχυδρομείου.

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA, δημιουργήστε μια βασική εργασία

Επιλέξτε Δημιουργία βασικής εργασίας ... από το μενού Ενέργειες και ξεκινήστε από τον οδηγό μέχρι να φτάσετε στην οθόνη Action . Επιλέξτε Έναρξη προγράμματος και κάντε κλικ στο κουμπί Επόμενο .

Τρόπος αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου από υπολογιστικό φύλλο Excel Χρησιμοποιώντας δέσμες ενεργειών VBA προσθέστε επιχειρήματα

Χρησιμοποιήστε το κουμπί Αναζήτηση για να βρείτε την τοποθεσία του Microsoft Excel στον υπολογιστή σας ή αντιγράψτε και επικολλήστε τη διαδρομή στο πεδίο Πρόγραμμα / σενάριο . Στη συνέχεια, εισαγάγετε τη διαδρομή στο έγγραφο του Microsoft Excel στο πεδίο Προσθήκη πεδίων. Ολοκληρώστε τον οδηγό και ο προγραμματισμός πρέπει να είναι στη θέση του. Αξίζει να εκτελέσετε μια δοκιμή προγραμματίζοντας τη δράση Πώς μπορείτε να αδειάσετε αυτόματα τον κάδο ανακύκλωσης σε ένα πρόγραμμα και να ελευθερώσετε τον κενό χώρο Πώς μπορείτε να αδειάσετε αυτόματα τον κάδο ανακύκλωσης σε ένα πρόγραμμα και να ελευθερώσετε τον κενό χώρο Εάν δεν αδειάζετε τακτικά την ανακύκλωση Bin, θα μπορούσε να σπαταλάει gigabytes χώρου στη μονάδα δεδομένων σας. Τώρα, τα Windows 10 μπορούν να το αδειάσουν αυτόματα σε ένα πρόγραμμα. Διαβάστε περισσότερα για μερικά λεπτά στο μέλλον, και στη συνέχεια να τροποποιήσετε την εργασία μόλις επιβεβαιώσετε ότι λειτουργεί.

Ίσως χρειαστεί να προσαρμόσετε τις ρυθμίσεις του Κέντρου Εμπιστοσύνης για να βεβαιωθείτε ότι η μακροεντολή λειτουργεί σωστά. Για να το κάνετε αυτό, ανοίξτε το υπολογιστικό φύλλο και μεταβείτε στο File > Options > Trust Center . Από εδώ, κάντε κλικ στην επιλογή Ρυθμίσεις κέντρου εμπιστοσύνης και, στην επόμενη οθόνη, ρυθμίστε το κουμπί επιλογής " Ποτέ μην εμφανίζονται πληροφορίες σχετικά με το αποκλεισμένο περιεχόμενο" .

Κάντε το Microsoft Excel Work για σας

Το Microsoft Excel είναι ένα απίστευτα ισχυρό εργαλείο, αλλά η εκμάθηση του πώς να αξιοποιήσετε στο έπακρο αυτό μπορεί να είναι λίγο εκφοβιστικό. Αν θέλετε πραγματικά να κυριαρχήσετε το λογισμικό, θα πρέπει να είστε άνετοι με το VBA Το Excel VBA Προγραμματισμός Tutorial για αρχάριους Το Excel VBA Προγραμματισμός Tutorial για αρχάριους VBA είναι ένα εργαλείο ηλεκτρικού ρεύματος του Microsoft Office. Μπορείτε να το χρησιμοποιήσετε για να αυτοματοποιήσετε τις εργασίες με μακροεντολές, να ενεργοποιήσετε ενεργοποιητές και πολλά άλλα. Θα σας παρουσιάσουμε τον Visual βασικό προγραμματισμό του Excel με ένα απλό έργο. Διαβάστε περισσότερα, και αυτό δεν είναι μικρό έργο.

Ωστόσο, τα αποτελέσματα μιλούν από μόνα τους. Με μια μικρή εμπειρία VBA κάτω από τη ζώνη σας, σύντομα θα είστε σε θέση να κάνετε το Microsoft Excel να εκτελεί βασικά καθήκοντα χωρίς την επίβλεψή σας, δίνοντάς σας περισσότερο χρόνο να επικεντρωθείτε σε πιο πιεστικά θέματα. Χρειάζεται χρόνος για να αντιμετωπίσετε το VBA, αλλά σύντομα θα δούμε τους καρπούς των δικών σας εργασιών αν μπορείτε να κολλήσετε με αυτό.

Μπορείτε να σκεφτείτε τυχόν δροσερές χρήσεις για το CDO στα δικά σας προγράμματα Microsoft Excel, Access ή Word; Μοιραστείτε τις σκέψεις και τις ιδέες σας στην παρακάτω ενότητα σχολίων.

In this article