『VBAプログラミング』Excelでyahooメールを送信してみよう!

『VBAプログラミング』Excelでメールを送信してみよう!
提供:photoAC「Wassy-ST様」

Excelといえば表計算ですが、できるのはそれだけじゃありません。

『VBA』というExcelの拡張機能でプログラミングも可能なのです。

もちろんExcelさえパソコンに入っていれば、すぐにでも練習可能。

ゆえに、もうプログラミングの手前(開発環境の構築とか)で悩む必要なんてありません。

それにVBAなら情報量が豊富ですし、デバック(プログラム内のバグを改修する作業)も比較的わかりやすく、しかもつくった作品で会社のExcel業務がぐっと楽になるかもしれないのです。

ですので……

「プログラマーに興味があるけど、その前に体験してみたい……」

「会社でも使える実用的なモノをつくってみたい」

「手軽にプログラミング学習できたらなぁ……」

そんな方に『VBA』はうってつけです。

とまぁ、前置きはこれくらいにして、今日からあなたもVBAプログラマー。

さっそく何かプログラミングしてみましょう!

 どこでも食っていけるWeb人間になれる【Web食いオンラインスクール】

ちなみにVBAの初心者向けサイトはネット上にたくさんありますので、基礎的な部分はそちらを参考にしてください(丸投げですみません)。

では。

いきなりですがVBAでyahooメールを使って(送信元にして)メールの送信をしてみましょう!(なんでメール?というツッコミはご容赦ください。なんとなくです)

でもその前にyahooメールの設定を変更する必要があります。

yahooメールを開いて、設定(歯車のマーク)をクリックしてください。

『VBAプログラミング』Excelでyahooメール【メールの設定画面】

次にIMAP/POP/SMTPアクセスをクリックして下記のように設定を変更してください。

『VBAプログラミング』Excelでyahooメール【メールの設定画面】

yahooメールの設定はこれで準備OKです。

下記がVBAのコードになります。

Option Explicit

Sub excelMail()
    
    Dim mailObj As Object
    Dim mailFrom As String
    Dim mailFromPassword As String
    Dim mailFromSmtp As String
    Dim mailFromPort As String
    Dim mailCharset As String
    Dim mailTo As String
    Dim mailSubject As String
    Dim mailBody As String
    Dim errNumber As Long
    
    
    '※※は変更してください
    '-------------------------------------
    
    '※※yahooメールのアドレス(送信用)
    mailFrom = "xxxxxxxxxxxxxxx@yahoo.co.jp"
    
    '※※yahooメールのSMTPパスワード(yahooメールのパスワード)
    'パスワードを数回間違えるとしばらくの間、
    'SMTPサーバーに接続できなくなります
    'もしそうなったら、一定時間(どのくらいかは不明)経過後、
    'yahooアカウントを一旦ログアウト、再度ログインしてお試しください
    mailFromPassword = "xxxxxxxxxxxxxx"
    
    '※※宛先
    mailTo = "xxxxxxxxxxxxxx@xxxxx.xxx"
    
    '送信用メールのSMTPサーバ(yahooメール以外の場合は変更が必要)
    mailFromSmtp = "smtp.mail.yahoo.co.jp"
    
    '送信用メールのポート番号(yahooメール以外の場合は変更が必要)
    mailFromPort = "465"
    
    'メールの文字コード
    mailCharset = "ISO-2022-JP"
    
    '※※メールのタイトル
    mailSubject = "テストメールその1"
    
    '※※メールの本文
    mailBody = "テストメールの本文です"

    '-------------------------------------
    
    'エラー番号
    errNumber = 0
    'CDOのオブジェクトを作成する
    Set mailObj = CreateObject("CDO.Message")
    
    With mailObj
        '送信元
        .from = mailFrom
        '宛先
        .to = mailTo
        '件名
        .subject = mailSubject
        '本文
        .TextBody = mailBody
        '文字コード
        .TextBodyPart.Charset = mailCharset
    End With
    
    With mailObj.Configuration.Fields
        'SMTPのユーザー名
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailFrom
        'SMTPのパスワード
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailFromPassword
        '認証方法
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        'SMTPサーバの種類
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'SMTPサーバ
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailFromSmtp
        'STMPの送信用ポート番号
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = mailFromPort
        'SSLを許可
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        '設定を更新
        .Update
    End With

    '重要度を変更
    mailObj.Fields.Item("urn:schemas:mailheader:X-Priority") = 1
    mailObj.Fields.Update
    On Error GoTo ErrorTrap
    '送信
    mailObj.Send
    If errNumber = 0 Then
        MsgBox "メールを送信しました"
    End If
    '初期化
    Set mailObj = Nothing
    errNumber = 0
    Exit Sub

ErrorTrap:
    errNumber = Err.Number
    MsgBox "エラーの番号:" & Err.Number
    MsgBox "エラーの概要:" & Err.Description
    Resume Next
    
End Sub

Excelというか、Excelに付属しているVBE(Visual Basic Editor)上でのみ実行可能なyahooメールを使ってメールを送信するだけのコードですが、改良すれば見た目も、機能もそれっぽくなりますよ!(^^)!

たとえば指定した日時以降にExcelファイルが更新されたらファイルを自動送信するとか。

特定のセルの値が変更されたら、その内容を自動送信するとか。

あるいはシートごとにメールのフォーマットと送信ボタンを用意しておくとか。

考え方次第で色んなことができるはずです。

結構楽しいですし、会社で一目置かれるようになるかもしれませんよ~(^^)

まずはVBAでプログラミングをやってみましょう!

サイコパスなどに関する記事

身近に潜んでいる陰湿で邪悪な支配者『マニピュレーター』

カバートアグレッションな人たちを見極める

マニピュレーターの弱点と対策について。操りたがる人たちが恐れる『無敵の人』

閉塞感をともなうモラハラ。受動攻撃性パーソナリティ障害(PAPD)による『受動的攻撃行動』

今後、激増するかもしれない『職場のガスライティング』その種類と対策について

現代社会が生んだモンスター『カバートアグレッションを有するマニピュレーター』による深刻な『いじめ』

脆弱な自尊心を抱えるナルシスト(NPD)に味方する厄介な取り巻き『フライングモンキー』の対策・対処法

職場のサイコパス、ナルシストなどが行う「心理的虐待(ガスライティングなど)」の虐待例と対策及び対処法

ストレスフルな職場で注意すべきメンタルや身体の危険な症状

邪悪どころではない危険な性質『サディスティックパーソナリティ障害(SPD)』とは。サディストの種類やその危険性について

「近づいてはいけない人達」を初見で見極める

毒親による病的ナルシスト『自己愛性パーソナリティー障害』

ナルシストとソシオパスを見極める

職場や家庭でサイコパスの有害性に匹敵する「ソシオパス(社会病質者)」

静かに攻撃する人達『受動攻撃性パーソナリティ障害』

静かに攻撃する人達『受動攻撃性パーソナリティ障害』
人は思い通りにならないと「不満」を感じます。通常はコミュニケーションを通じて、解決しようと試みますが・・・、そうではなく、直接相手に主張することはせず、約束を破る、さぼる、遅らせる、黙る、態度が悪くなる、不機嫌になる、否定的になる、敵対的になる、やたらと不平不満や批判、愚痴、デマ、恨み言、皮肉を口にするなど・・。このような拒絶的または受け身的なやり方で、攻撃感情を表現する人達がいます。ですが、彼(彼女)らは当ブログで頻繁に登場するナルシスト、反社会性タイプ(サイコパスやソシオパス)などの危険なパーソナリティーのように「称賛」や「利益」など何らかの明確な目的でこのような振る舞いをしているわけではありません。一見すると危険性は然程ないように思えます。とはいえ、仕事では不満になると意図的に作業効率を落とし、生産性を悪化させ、人間関係では不規則に強いストレスを放ち、更に他者依存的で同調圧力に弱く、場合によっては「いじめ」の加害者側に属します。今回はこのような特徴を有するタイプ『受動攻撃性パーソナリティ障害(PAPD)』についてご紹介します。

ナルシスト(NPD)による『ガスライティング』の特徴と対策

サイコパスが上司の場合は悲惨です。ですがサイコパスは社会的に成功している場合があります。もし上司がサイコパスに該当する場合は早めの対策を。下記はサイコパス上司とクラッシャー上司についての特徴と対策

サイコパスやサディスト、ナルシスト、反社会性の他にも危険なタイプが存在します。下記はサイコパスやサディスト、ナルシスト、反社会性の特徴をもつ危険なタイプについて

サイコパスを事前に把握し、対策することで、被害を回避、軽減できます。下記はサイコパスにおける20の特徴と対処法について

「怒り」の種類と、その「怒り」裏に隠されているかもしれない障害のタイプをご紹介します。「怒り」で周りの人や自分に潜む「パーソナリティー障害」や「精神障害」がわかるかもしれません。

婚活で注意したいサイコパス『ハイスペック(高収入)男子』

メンタルヘルスに関する記事

メンタルを強くする2つの方法と即席で強化する思考術

『傷つかない考え方』と『傷つきやすい人』について。とある『傷つきやすい人』実は○○○○○かもしれません

職場特有の人間関係や将来性に強いストレスや不安を感じている方は「在宅プログラマー」への転職(再就職)がオススメ

不安や辛い過去に響くお釈迦様の教え「一夜賢者の偈」

落ち込む(気持ちが沈む)メンタルに効果的な4つのメンタルヘルス(アジェンス思考・習慣・栄養・ハーブ)

不満(イライラ・ムカつく・ドキドキ)なメンタルに簡単でスグにできる効果的な4つのメンタルヘルス(瞑想常駐(めいそうじょうちゅう)・習慣・栄養・ハーブ)

将来が不安な方はスクールに行って手に職をつけよう。プログラミングやデザイン、英語は特にオススメ。

精神を病む前に辞めてしまおう。お金ではなく、スキルを稼ごう。スキルは転職やフリーランス、起業における最強フリーパス

『○丼』によるメンタル対策「不安・緊張(プレゼン・スピーチ・商談・転職・就職活動・面接)にかなりオススメ」

職場でメンタルを回復する方法。オキシトシンをフル活用しよう!

不安なメンタルを解消・軽減しよう!「思考・習慣・栄養・ハーブ」による4つのメンタルヘルス

「不安」を感じやすい方のための栄養とハーブ

重い生理痛やPMS、職場特有の人間関係、ライフステージによる仕事のストレスや不安がある方は「在宅プログラマー」へ転職(または再就職)しよう

タイトルとURLをコピーしました