<試行錯誤にトライできる人、できない人>
こんにちは、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)]