<試行錯誤にトライできる人、できない人> こんにちは、Ken3です。 今回は、 試行錯誤にトライできる人、できない人 そんな話です。 *読者数も減少傾向なので、たまにはプログラムネタを。 /* * 1.ネタ元 */ ネタ元はVBA系のメルマガに来た質問メールから。 In message "質問", 初心者 さん wrote... >EXCELからOUTLOOKを起動してEXCELシートに書かれている複数のアドレスにBCC >で送信していんですが、どうしたらいいんですか? ---- なんてメールが来ました。 Sub testSEND送信() Dim oApp As Object 'アプリケーションオブジェクト Dim objMAIL As Object 'メールのオブジェクト Dim strMOJI As String '本文 'アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 strMOJI = "こんにちは" & vbCrLf _ & "プログラマーの愚痴、教えまっせ?" & vbCrLf _ & "http://www.ken3.org/ よろしく(笑)" objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "TEST(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.Send '直接送信箱行き 'おまけでOutlook表示 Dim myNameSpace As Object Dim myFolder As Object Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 End Sub と、 Outlookからメールを送信するテストプログラムを紹介したメルマガに対しての 質問メールだと思います。 /* * 2.試行錯誤なんてしないのかなぁ? */ わかりにくいと評判の解説では、 まず、アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") 次に、メールアイテムを作成します。 Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 本文を一時的に変数に保管して(直接でもいいですよ) strMOJI = "こんにちは" & vbCrLf _ & "プログラマーの愚痴、教えまっせ?" & vbCrLf _ & "http://www.ken3.org/ よろしく(笑)" こんな感じで、vbCrLfの改行を使って、作成してます。 データをメールアイテムにセットする objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "TEST(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 見たまま?で、 .To 宛先 .Subject 件名 .Body 本文 をセットしてます。 と解説してました。 BCC送信したいなら、 .To を .Bccにして実験したりしないかなぁ、 予想を立てて、遊んでみないかなぁ? と試行錯誤すればなんかわかったような気がして、、、 失敗しないで、成功の方法を簡単に聞いたほうが楽だしハヤイか、、、 まぁ、わからなくも無いけど、 有名なセリフで、半日自分で悩んでから聞いてね?って言葉を、 みなさんは先輩や上司から聞いたこともあると思います。 で、 絶対アンタには聞きたくないよ、意地でも自分で調べてやる... って人も多いと思います。 質問者はもしかしたら、2・3日悩んだかも知れないけど、 試行錯誤にトライできる人、できない人 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ って、愚痴マガのネタが浮かんでしまった。 /* * 3.私も少しハマったけどね */ なんて偉そうなこと言ってる私も、試行錯誤でハマりました(笑) objMAIL.BCC = "test@ken3.org" 'BCCに変えただけ と.BCCに変更してテスト実行。 おっ、できるじゃん。 あっ、質問は、複数の宛先にBCCだっけ、 カンマで区切ったらできるのかなぁ? よし、やってみますか '文字列で宛先を作る strBCC = "test@ken3.org, excel@ken3.org, access@ken3.org" objMAIL.BCC = strBCC '宛先の文字列を渡す あれ?エラーだよ、、 strBCC = "test@ken3.org , excel@ken3.org , access@ken3.org" と、カンマを離してみるがダメ、、、う〜ん、、、 strBCC = "test@ken3.org ; excel@ken3.org ; access@ken3.org" と、セミコロン;で区切ったらうまく行きました。 あとは、固定値だけどセルからアドレスを取ってきて、 セミコロン区切りにして、.BCCにセットすれば出来上がりかなぁ。 少しハマりかけたが、なんとか試行錯誤しつつ完成した。 Sub testBCC送信() Dim oApp As Object 'アプリケーションオブジェクト Dim objMAIL As Object 'メールのオブジェクト Dim strMOJI As String '本文 'アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 strMOJI = "こんにちは" & vbCrLf _ & "プログラマーの愚痴、教えまっせ?" & vbCrLf _ & "http://www.ken3.org/ よろしく(笑)" Dim strBCC As String 'BCC宛先の変数を定義 '文字列で宛先を作る strBCC = "test@ken3.org ; excel@ken3.org ; access@ken3.org" objMAIL.BCC = strBCC '宛先の文字列を渡す objMAIL.Subject = "TEST(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.Send '直接送信箱行き 'おまけでOutlook表示 Dim myNameSpace As Object Dim myFolder As Object Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 End Sub サンプルファイルは、 http://www.ken3.org/vba/lzh/vba056.lzh に test056-book.xlsが保存されています。 Excel2000とOutlook2000で軽くテストしました。 *変なことに使わないでね。。。 /* * 4.質問に答えて自分も学ぶことってあるよね、後輩に慕われてますか? */ Outlookの宛先の区切りは、カンマじゃなくてセミコロンと私も勉強になりました。 社内で質問が集まるできる技術者は、 後輩から来た質問に答えつつ、本人も成長していると思います。 で、成長するとさらに質問が集まり、成長する。 できる人が自然と育って行く1つの要素かなぁとフト思ったり。 逆に言うと、後輩から質問・相談受けない先輩は、ダメってことかなぁ。 (私と同様に(笑)) まぁ、相性やまわりの環境にもよるけど。。。 /* * 5.終わりの挨拶(次回はアルのか?(爆)) */ 今回もなんかまとまってませんでした。 ・試行錯誤しようよ ・質問に答えると自分の力もUPする って話でした。 何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 4月稼動のシステム担当している人は大変だと思いますが、 ほどほどに気を抜きながら、がんばってください。 おバカな三流プログラマーKen3でした。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
項目別に本音?それとも建て前?的な記事をまとめました。
気になったジャンル↓を選択してください。 |
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]