エクセルVBAで使って、自動メール送信は出来るでしょうか?

名簿一覧のワークシートには氏名とメールアドレスが記入されていますが、VBAによってすべての人にメールを送信することが出来るでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

プロバイダから特に指定されていなければ、ポート番号は「25」です。




> また、実際には家庭内でLAN接続をしているため、…

プロバイダのSMTPサーバ名を指定してください。
    • good
    • 0
この回答へのお礼

メールの送信できました。
大変感激しました。
本当に有り難うございます。

お礼日時:2001/04/07 18:17

できますよ。



いくらでもやりかたはありますが、簡単なのは「メール送信用」と
銘打たれているDLLやCOMを使うことです。

検索サイトで

  VBA メール送信

とでもやれば、山のようにヒットします。

http://www.hi-ho.ne.jp/babaq/bsmtp.html



http://www.vector.co.jp/soft/win95/prog/se154742 …

なんて良いんじゃないでしょうか。
特に前者は、

http://www.hi-ho.ne.jp/babaq/vbtips.html

にサンプルのコードも載っていることだし。

この回答への補足

エクセルとはべつのDLLが必要なんですね。

http://www.hi-ho.ne.jp/babaq/bsmtp.html から
bsmtp.dll をインストールして動かしてみました。

次に、つまずいたのが、サンプルプログラムのSMTPサーバ名の設定というところです。

>szServer = "your smtp" ' SMTPサーバ名。
> 'タブで区切ってポート番号を指定できます。

プロバイダのSMTPサーバ名は分かるのですが、ポート番号が分かりません。
また、実際には家庭内でLAN接続をしているため、HOSTのIPアドレス出よいのでしょうか、またポート番号はどうなるのでしょうか。

補足日時:2001/04/07 15:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qメールの署名設定

メールの署名設定がリッチテキスト形式のなっていて、テキスト形式に代えると青字のアドレスが黒字になってしまします。
返信の場合は変えても大丈夫なのですが、どうすればテキスト形式に変更できますか?

Aベストアンサー

オプションでテキスト形式で作成するようにしていますよね?
それでもリッチテキストになってしまうのですか?
返信するときに元のメールと同じ形式にする、とかしてます?

それ以外に設定はありません。
これでもおかしいなら、IEを再インストールしてみましょう。

QExcelで作った名簿のメアドに一斉送信は出来ますか?

Excelでサークルのメンバーリスト(約30名)を作っています。

今度、メンバーへの報告事項などを一斉送信したいと考えています。

そこで、一々Excelからメアドをコピペしていくのも面倒なのでまとめて送信する方法は無いでしょうか?

ちなみに、送るときは「ヤフーのフリーメール(ネット上のヤフーHPから送信)」か「独自ドメインのThunderBird」「独自ドメインのアウトルック」のいずれかになります。

素人の為、書いている内容の意味がご不明の場合はご指摘ください。

よろしくお願いします。

Aベストアンサー

http://2020hindsight.cocolog-nifty.com/blog/2008/09/excel_ba93.html
で紹介してるようなやり方は如何でしょうか?

QOutlook 2003 メール返信時の署名のずれについて

よろしくお願いします。
現在の設定
【OS】 Windows XP
【メール】 OutLook 2003
【形式】  HTML
【フォント】MS P明朝 新規・返信すべて
【署名】 返信時、新規作成時に設定

メールを返信する際に、署名を設定しているのですが、
相手のフォントが自分のフォントと違っている
場合、署名がずれておかしな形になります。
どんなフォントでも署名がずれないやり方って
ありますでしょうか?

Aベストアンサー

基本的にありません。

もともとメールは単なるテキストです。
質問者さんは、HTML形式でメールを送られているようですが、
メールを受け取った方が、HTMLメールに対応していなければ、
文字サイズやフォントはすべて無効になり、
相手の環境に依存します。

また、HTMLメールで同じフォントを指定している場合でも、
Windows XPとVistaでは、見え方が異なるようです。

メールの署名を凝ったものにするのも結構ですが、
ちょっとでもずれると表示が激しく乱れるようなものは
避けた方が無難と思います。

Qデータ参照して名簿の氏名に番号を振りたいのです。

エクセルのファイルが二つあります。
No.1 50音順の全ての会員名簿
No.2 当月の会員整理番号つき名簿(整理番号は毎月変わります。この名簿には、全ての会員が載っているわけではありません)

No.1の50音順名簿には、A列が空欄、B列がカナ氏名、C列が漢字氏名になっています。(1行目はタイトル行で、2行目以降に氏名が入っています)

No.2の名簿を参照して、1の50音順名簿のA列に「当月の会員整理番号」を自動で入力するようにしたいのです。

例えば、50音順名簿の2行目は鈴木一郎さんだとします。今月の彼の番号はNo.2の名簿によると33番だとします。その場合、50音順名簿のA2セルには33と表示させたいのです。(もし、No.2の名簿に鈴木一郎さんの名前がない場合は、空欄として表示したいのです)

このデータを印刷することで、50音順名簿から整理番号を確認するのが大変楽になります。

VLOOKUP関数を利用しようと思いましたが、私の方法が悪かったのでしょう、エラーになってしまいました。
自動的に入力されるようにしたいので、改めてセルに数値を入力したくはないのですが、いい方法はあるでしょうか?

No.2の名簿ファイルは、データをコピーして、No.1の50音順名簿の別シートに貼り付けても構わないと思います。

よろしくお願いします。

エクセルのファイルが二つあります。
No.1 50音順の全ての会員名簿
No.2 当月の会員整理番号つき名簿(整理番号は毎月変わります。この名簿には、全ての会員が載っているわけではありません)

No.1の50音順名簿には、A列が空欄、B列がカナ氏名、C列が漢字氏名になっています。(1行目はタイトル行で、2行目以降に氏名が入っています)

No.2の名簿を参照して、1の50音順名簿のA列に「当月の会員整理番号」を自動で入力するようにしたいのです。

例えば、50音順名簿の2行目は鈴木一郎さんだ...続きを読む

Aベストアンサー

データの配置が分からないので回答しづらいのですが、No.2シートのデータが左側の列に検索キーとなる(?)、漢字氏名、右側の列に当月整理番号が入っていないと、VLOOKUP関数は使えません。

もしそれが原因でエラーとなっているならMATCH関数で鈴木一郎さんの行番号を求めて、INDEX関数で当月整理番号を取り出す方法も考えられます

No.2シートのA列が当月整理番号、B列が漢字氏名だとして、No.1シートのA2セルに
=IF(ISNA(MATCH(C2,NO2!$B$1:$B$100,0)),"",INDEX(NO2!$A$1:$A$100,MATCH(C2,NO2!$B$1:$B$100,0)))

なおこのような質問ではNo.2シートのデータの並びも書いてもらうと助かります。そうでないと「もし○○のとき」の連続になります。

Qアウトルックのメール送信時に手動で署名を入れたいのですが

アウトルック200のメール送信時に、通常は署名を入れない状態にしておいて、必要な時にだけ手動で入れるようにするにはどうすれば良いのでしょうか?
メール本文作成画面で、挿入から定型句の中の署名を選んで入れることはできるのですが、それだと、ツールのオプションののメール形式の中の署名で作成された署名が入力されずに、ただ単純に名前だけ入力されます。
アウトルックのヘルプを見たら、メール作成のエディタをワードにした時とアウトルックにした時とでは違うらしく、ワードをエディタとして選んだ場合、手動で入力される署名は、ワード起動時に入力した使用者名が挿入されるとのこと。
ならば、アウトルック上で作った署名を手動で入力するには、エディタをアウトルックにしないと不可能なのでしょうか?
それと、エディタをワードにした場合とアウトルックにした場合とでは何が違うのでしょうか?どちらの方が便利でしょうか?

Aベストアンサー

アウトルック2000を使ってます。
アウトルックのツールメニューのオプションでメール形式を選びます。
ここでたくさんの署名を作る事が出来ます。
私の場合、遊び感覚や正式な署名など色々作っています。
私は通常使用頻度の高い署名を設定してます。

テキストメール・HTMLメール・雛型メールについての署名の事。

メールを書くとき署名が既に入る設定にしていますが、その署名を使いたくないときは、面倒でもデリートで裂く一旦削除します。
メール作成画面で、挿入メニューの署名を選択すると、たくさん作った署名にタイトルを付けてありますので数ある署名から適宜を選びます。


ワードなどのオフィスドキュメントのメールについての事。

ワードエディターでの署名はワードのツールメニューの中のオプションの全般タブに電子メールオプションがあります。
その中で電子メール用の署名を作ります。そこでも色々な署名が出来ます。
そこで各種作るとワードメールを使った場合、挿入から署名を選ぶとワード起動時の使用者名の他にも、先ほど作った署名を任意に選ぶ事が出来ます。

余談ですが、動画のイラスト入り署名も出来ますよ。


説明が下手で申しわけありません。
わからなかったら補足します。

間違いなく出来ますよ。
色々署名で楽しんでいます。

(奥が深いです)

アウトルック2000を使ってます。
アウトルックのツールメニューのオプションでメール形式を選びます。
ここでたくさんの署名を作る事が出来ます。
私の場合、遊び感覚や正式な署名など色々作っています。
私は通常使用頻度の高い署名を設定してます。

テキストメール・HTMLメール・雛型メールについての署名の事。

メールを書くとき署名が既に入る設定にしていますが、その署名を使いたくないときは、面倒でもデリートで裂く一旦削除します。
メール作成画面で、挿入メニューの署名を選択すると、...続きを読む

Q複数シートの名簿から重複する氏名を探知する方法

お世話になります。
エクセルの操作方法を教えてください。

ここにとある名簿があるとします。4種類あります。
とりあえず、4種類の名簿をひとつのファイルにまとめます。
(シートは別々とします)

さて、この4種類の名簿シートの中で、
4種類すべてに名前が登場する人物がいたら、それを特定したいと思います。

どんな方法を使えばいいでしょうか?


質問を簡単にするために、以下を定義します。
4種類の名簿は全部構成が同じものとします。
また氏名の入力も同じフォーマットであるとします。
具体的にいえばA列に

漢字姓(全角スペース)漢字名

が入っているとしましょう。

漢字姓(全角スペース)漢字名が完全一致するものだけを「一致」とします。
漢字の入力間違いや、全角スペースの入れ忘れによる部分一致は「一致」とはみなさないもの、とします。

作業のためにシートをコピーしたり、作業のために一時作業シートに4つの名簿を全部コピーするのはかまわないとします。

関数だけで実行する方法を教えてください。

よろしくお願いします。

Aベストアンサー

1つのシートでは名前はユニーで、
4つのシート名が、Sheet1,Sheet2,Sheet3,Sheet4だとして、

Sheet1のB1に
=COUNTIF(A:A,A1)+COUNTIF(Sheet2!A:A,A1)+COUNTIF(Sheet3!A:A,A1)+COUNTIF(Sheet4!A:A,A1)
と記入して、下にコピペします。

計算結果が4になるものは、4シートすべてに同じ名前があります。

QMicrosoft Office Outlookメール文に署名貼付で

Microsoft Office Outlookメールを利用しております。
Outlook expressの時は、メール文中に署名の貼付が、メニュー[挿入]、[署名]から署名を挿入できましたが、Microsoft Office Outlookでは、どのようにすれば良いのでしょうか、よろしく、お願い致します。

Aベストアンサー

Microsoft Office : Office Outlook 2003 コミュニケーション テクニック - 署名を作成してメールを使い分けたい!
http://www.microsoft.com/japan/office/previous/2003/experience/workstyle/tips/outlook/tips3.mspx

Outlook 2007 で電子メールの署名を作成する方法
http://support.microsoft.com/kb/931825/ja

Qエクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成し

エクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成したいのです。
シート毎に個人情報を入力してますが、同時に別ブックにて氏名、住所、連絡先のみを一覧にしたいです。
個人情報のシートは
ブック名「顧客情報詳細」の氏名欄がA6をブック「一覧表」のA1に。
住所はJ6→B1  連絡先J8→C3  といった具合です。

教えていただけないでしょうか? 
宜しくお願い致します。

Aベストアンサー

一例です。
(1)一覧表ブックを開く→Sheet1タブ上で右クリック→コード表示→VBE(右上画面)に以下のコードを貼り付け
(2)コード内の「******」に顧客情報詳細ブックのパス名を設定→alt+F4キー押下(VBE画面終了)し、alt+F8キー押下→マクロを選択して実行

◎サンプルコード表
Sub 一覧表を作成()
Application.ScreenUpdating = False
myBook = "C:\***********\顧客情報詳細.xls"
i = 0
With Workbooks.Open(myBook)
For Each k In .Worksheets
i = i + 1
Sheet1.Cells(i, 1) = .Sheets(k.Name).Range("A6")
Sheet1.Cells(i, 2) = .Sheets(k.Name).Range("J6")
Sheet1.Cells(i, 3) = .Sheets(k.Name).Range("J8")
Next
.Close False
End With
Application.ScreenUpdating = True
End Sub

一例です。
(1)一覧表ブックを開く→Sheet1タブ上で右クリック→コード表示→VBE(右上画面)に以下のコードを貼り付け
(2)コード内の「******」に顧客情報詳細ブックのパス名を設定→alt+F4キー押下(VBE画面終了)し、alt+F8キー押下→マクロを選択して実行

◎サンプルコード表
Sub 一覧表を作成()
Application.ScreenUpdating = False
myBook = "C:\***********\顧客情報詳細.xls"
i = 0
With Workbooks.Open(myBook)
For Each k In .Worksheets
i = i + 1
Sheet1.Cell...続きを読む

Qヤフーメールで署名がつけられない

ヤフーのメールを使っています。昨日あたりに突然仕様変更がありました。

そして、メール作成画面の下にあった、「メールに署名を入れる」とかいうボタンが見当たらなくなりました。この仕様で署名を入れるにはどうすればいいのでしょうか?

設定画面の「全てのメールに署名を入れる」だと、個人的には都合が悪いです。あと、これにチェックを入れて自分にテスト送信してみても、署名がありませんでした。

勝手に仕様変えるのって不便極まりないですね。

Aベストアンサー

#1です。

私は、YahooBB会員ですが、署名の入り具合を確認しました。

Yahooの契約IDのybb.ne.jpでの送信では、メールオプションの「メールアドレスの追加・編集・削除」の編集で作成した署名が、

yahoo.co.jpでの送信では、メールオプションの「署名」の項目で作成した署名が、「すべての送信メールに署名を付ける」を有効にすると、そのまま本文にそれぞれの署名が自動的に入るようです。

従って、作成画面での「利用する」のチェック入れは無くなって、不要であれば、本文から削除する必要があります。

追加アドレスでも使う署名はそれぞれ会員IDと同じですが、「署名を利用する」のチェックを入れる項目は作成画面にあって、チェックを入れてそのまま送信するとそのメールに自動的に入るようです。

まだ、完全にすべてのIDに行き渡っていない仕様のようですが、確認した状況はそのようになっていました。

QエクセルVBAでメール送信

エクセルのワークシートから、メニューの、「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文として送信できますが、その際、ワークシート上のオブジェクトを自動で削除するためにはどうしたらよいでしょうか?

やりたいことは、ワークシート上のドロップダウン等で選んだ定型の文言(ドロップダウン操作により、自動的にシート上に表示されます。)だけを任意のアドレスにメール送信したいということです。現状ではドロップダウン自体やボタンまでメールに添付され、手動で削除しなくてはなりません。

Aベストアンサー

>「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文
> として送信すると同じように...

参考URL: http://oshiete1.goo.ne.jp/kotaeru.php3?q=1546306

参考URLのスレによると、この機能が使えるかどうかは環境依存するようです。
ご自分の PC でだけ使用する前提ですか?

消極的な逃げの手段になりますが、こんな感じでは?.....

Sub Sample()
  
  If Application.MailSystem <> xlMAPI Then
    MsgBox "この機能を使用するためには MAPI対応のメーラーが必要です。", vbCritical
   Else
    ' Copy 完了後 Activesheet は新規ブックの方に変わります
    ActiveSheet.Copy
    ' ここで不要なものを削除するなど必要な処理を行う
    With ActiveSheet
      ' コントロールやシェープ等の削除
      .DrawingObjects.Delete
      ' 入力規則の削除
      .Cells.Validation.Delete
      ' A 列の削除
      .Columns(1).Delete
    End With
    ' 念のため
    ActiveWindow.Activate
    ' 逃げの一手... [メール宛先] ショートカットキー送信
    SendKeys "%FDM", True
  End If

End Sub

調べた限り、VBA からこの機能を呼び出すことはできないみたいです。

>「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文
> として送信すると同じように...

参考URL: http://oshiete1.goo.ne.jp/kotaeru.php3?q=1546306

参考URLのスレによると、この機能が使えるかどうかは環境依存するようです。
ご自分の PC でだけ使用する前提ですか?

消極的な逃げの手段になりますが、こんな感じでは?.....

Sub Sample()
  
  If Application.MailSystem <> xlMAPI Then
    MsgBox "この機能を使用するためには MAPI対応のメーラーが必要です...続きを読む


人気Q&Aランキング