私は、Outlook VBA
[メールの作成 や 読み込みを行いたい] / [予定 アポやスケジュールを管理したい] / [仕事・タスクを登録したい] / [アドレス帳や連絡先を管理したい] / [HELPからOutlookのプロパティやメソッドを探りたい]
です。※目的の処理を選択してください。


ken3memo : Outlook関係の→ [メモ・記事をチェック] / [アウトルックの動画解説へ]
全ての質問には、答えられませんが、リクエストや質問があったら、[作者(三流君)に質問する] から 気軽に送ってください [三流君(TOP)] / [VBA(TOP)] / [Outlook操作(TOP)]



魚拓 三流君VBAでOutlookを操作する 2012-02-14に履歴として残す

2012/02/14 までに書いた Outlook関係の記事です。
更新するたびに、前のほうが良かったと言われるのですが、
現在の最新解説は、
http://www.ken3.org/cgi-bin/group/vba_outlook.asp
↑を見てください。

ここから 過去記事 Outlookを操作する

まぁ、そんなに難しく考えないで、ソースを貼り付けて、遊んでみてください。
Excel など から Set oApp = CreateObject("Outlook.Application") で オブジェクトを作り、コントロールしてます。

[メールの作成へ] /[メールを読む] /[予定表関係] /[仕事・タスク関係]

Option Explicit
Sub OL_TEST_0221()  'Excel VBA から OutLookを起動して 受信箱を表示する

    Dim oApp As Object        'OutlookのApplication オブジェクトを入れる
    Dim myNameSpace As Object '名前のスペースと言われても、、
    Dim myFolder As Object    'フォルダー指定

    'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
    Set oApp = CreateObject("Outlook.Application")

    '呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ
    Set myNameSpace = oApp.GetNamespace("MAPI")
    
    '次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display)
    Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定
    myFolder.Display  '表示 いつものクセで .Visible = True とやりがちだけど

End Sub

msdn.microsoft.com/library の ↓ここから探るとよいかも、
[Outlook での VBA の使用]

また、入り口で いきなり他店の紹介、ライバル店を紹介するのも変だけど、
[Outlook 研究所]
↑ここすごい、
私も、ライバル店に負けないように、品揃えと品質を上げないとなぁ・・・

↑の実行結果↓ Excel2003 VBA から OutLookを起動
↑三流解説 [え〜と] And [こんな感じ] を連発(笑)した動画。



#MailItem

メールの作成

次にメールを新規に作りたいと思います。
'メールを作成する Excel2003 Outlook2003 でテストしました
Option Explicit
Sub MAKE_MAIL_ITEM_TEST_NG()

    Dim oApp As Object
    Dim myNameSpace As Object
    Dim myFolder As Object

    Dim objMAIL As Object 'メールのオブジェクト
    Dim strMOJI As String '本文

    'outlook 起動
    Set oApp = CreateObject("Outlook.Application")

    Set myNameSpace = oApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定
    myFolder.Display  '表示 いつものクセで .Visible = True とやりがちだけど


    'メールアイテムの作成
    Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 直値はいけないと思いつつ、
    objMAIL.Display   '画面表示(Mail入力、編集画面を表示)

    '宛先・件名・本文 などのデータを代入する
    objMAIL.To = "test@ken3.org"           '宛先 ほかに.cc や.Bccも可能です
    'objMAIL.CC = "vba@ken3.org"           '宛先 .cc
    'objMAIL.BCC = "vba@ken3.org ; oltest@ken3.org"         '宛先を複数は ; セミコロンで区切る
    
    objMAIL.Subject = "テスト メールの件名です "  '.Subjectに文字列設定で件名
    
    '本文を作る、(vbCrLfで改行されます)
    strMOJI = "こんにちは(このメールtestアドレスなので質問は別便で)" & vbCrLf _
            & " ここで 文字列を作って .Bodyに代入する" & vbCrLf _
            & " メールアイテムが作成されたらその後、 " & vbCrLf _
            & " .save 下書きへ保存 や .sendで送信(確認が出る)" & vbCrLf _
            & " 今回は、.Display で メール作成画面を表示" & vbCrLf _
            & Now() & "作成"

    objMAIL.Body = strMOJI                 '本文の代入

    '添付ファイルを送りたいって? そんな時は、.Attachments.Add "ファイル名"
    'objMAIL.Attachments.Add "e:\work\test.txt"        '本当はファイルの存在チェックも事前にしたいけど
    'objMAIL.Attachments.Add "e:\work\作業報告書.xls"  '複数送りたかったら、再度.Addしてね

    objMAIL.Display   '編集画面のまま止めておきたい時 や テスト中に動作を見たいとき
    'objMAIL.Save   '保存、下書きへ  保存後、用が無かったら.Closeで閉じるのがいいのかなぁ。。。
    'objMAIL.Close 2  '閉じる Mailの編集画面を閉じる
    
    objMAIL.Send   '送信箱へ ※セキュリティの警告メッセージが出るよ
    
    'ここで、普通はオブジェクトの開放など、後始末をする。

End Sub
過去のメルマがで三流解説もしてました。
[No.55 Outlookを操作してメールを送りたい]
[No.56 Outlookから複数のアドレスにBCC送信]
[No.78 Outlookでファイルを添付するには?.Attachments.Add]
[No.169 Outlookで複数のファイルを添付するには?]


[No.183 Outlook リッチテキスト形式のメール で グラフを送る]

[AccessサブフォームのデータをOutlook本文に転記する]
↑CreateObject("Outlook.Application")後に、
.Visible = Trueとやりたいところだけど、
規定のフォルダーを.Displayで表示したり、
あとは空のメールスペースをSet objMAIL = oApp.CreateItem(olMailItem)で作ってから、
あて先(.to) や 件名題名(.Subject) 本文(.Body) 中身をセットして、
次のアクション(メソッド)を発行する感じかなぁ?

複数送信のサンプル:下記、ExcelからOutlookのメールを作成したサンプルです。
[複数事前登録されたアドレスへ メールを送信する]
[期限まで未回答の人に督促メールをまとめて送信]

↓試行錯誤の動画です。見てダメっぷりを笑ってください。
[テスト VBA Outlook メールの作成をテストした](画像が悪いけど・・)


Outlookの親切な強制改行を止めたい

余談ですが、広告コードをBlogに簡単にUPしたくて、Blogのメール投稿機能を使うことを考えました。
広告コードをVBAで置き換えて自動送信するイメージで。普通に作ったらハマりました。どこでハマったかと言うと、vbCrLfを入れていないのに自動で改行され長いためか、広告用のリンクコードが途中できれてしまいました。
(親切に設定した文字数でOutlookが改行してくれます。オプションで文字数を増やそうとしたら最大値が132文字でした。これだと、長い文字数の広告リンクコードが途中で切れてしまいます。)
少々危険を感じつつ、↓下記のリンクを見て、レジストリを書き換えて対応しました
[[BUG] Outlook 2003 で電子メール メッセージを送信したときに、想定した位置で行が折り返さない]
↑データや長い文章をOutlook本文 文字列で送りたい場合はここに注意してください。
※以上、広告職人の余談でした・・・(最近はBlogに機械的な広告は効果なしですが)

↓[レジストリに WrapLinesを変更 PlainWrapLenを設定](画像が悪いけど・・)

#ReadMail

メールを読む

メールの作成ができたら、次は、受信したメールに対して処理を行いたい、そんな流れだと思います。。。

MailItem オブジェクト
http://msdn.microsoft.com/ja-jp/library/cc359390.aspx
↑MSDNを参考にして、

'Excel2003 VBA から OutLook2003を起動して 受信メールを1つ1つ取り出す
Sub OL_TEST_LOOK_MAIL_0221()  

    Dim oApp As Object        'OutlookのApplication オブジェクトを入れる
    Dim myNameSpace As Object '名前のスペースと言われても、、
    Dim myFolder As Object    'フォルダー指定

    'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
    Set oApp = CreateObject("Outlook.Application")

    '呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ
    Set myNameSpace = oApp.GetNamespace("MAPI")
    
    '次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display)
    Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定
    myFolder.Display  '表示 いつものクセで .Visible = True とやりがちだけど
    
    '次にメールの中身を取り出したいと思います。
    Dim objMAILITEM As Object 'メールアイテム
    Dim n As Integer  'カウンター
    
    For n = 1 To myFolder.Items.Count  'フォルダーのアイテム数分ループ
        'メールを1通取り出す、変数にセットする
        Set objMAILITEM = myFolder.Items(n) '別にあらためてセットしなくても使えるけど
        'テストデータをセルにセットする※11行目からセットする。。。
        Cells(n + 10, "A") = objMAILITEM.CreationTime  '作成日
        Cells(n + 10, "B") = objMAILITEM.SenderName    '差出人
        Cells(n + 10, "C") = objMAILITEM.SenderEmailAddress    '差出人のアドレス
        Cells(n + 10, "D") = objMAILITEM.Subject       '件名
        Cells(n + 10, "E") = objMAILITEM.Body          '本文
    Next n

End Sub
↑をそのまま実行すると、セキュリティのエラーがでるし・・・(涙)
エラーの画像: Ol0209w1
↑ここで、1分や2分・・を選択するとうまくデータを取ることができます・・・

↓サンプル実行結果の動画
Excel VBA から OutLookを起動して 受信メールを1つ1つ取り出す

↑三流解説 [え〜と] And [こんな感じ] の音声付き(笑)

セキュリティ関係でハマる

VBA Outlook で メール.body で 値を参照しようとしただけで、
(MsgBox "本文" & objMAIL.Body)
----
プログラムが Outlook 内に保存されている電子メールアドレスに
アクセスしようとしています。よろしいですか?

これが予期しない動作である場合は、[いいえ]をクリックしてください。
このプログラムがウイルスである可能性があります。
----
Ol0209w1

またまた、ハマったなぁ・・・
VBA Outlook 操作 .Body 参照でエラー
http://ken3-info.blog.ocn.ne.jp/code_gomibako/2009/02/vba_outlook_bod_c69d.html
↑実行した失敗ソースはここに載せときます。
証拠VTR動画は↓
Outlook 操作の失敗 動画


#AppointmentItem

予定表アイテムなど .CreateItemでメール以外のアイテムを作成

Outlookって、メールだけじゃなくて、イロイロな機能があります。
ってことで、下記質問が来たので、.CreateItem の タイプを調べてみました。

>VBAでOutlookの操作についてですが、予定表の内容を取得するマクロの
>記述はよく見かけますが、逆に予定表に予定を登録する方法があまりみ
>あたりません。
>具体的にどんな方法で行えばよいのでしょうか、ご教授願います。

確かに、Outlookって、資料や参考ページ少ないですね。
少し調べてみました。

.CreateItem(0) で メールのアイテムが作れます。
この 0 が定数で、この定数を予定表にすればアイテムを作れます。

olAppointmentItem 1 予定表
olContactItem  2 連絡先
olDistributionListItem 7 配布リスト
olJournalItem 4 履歴
olMailItem 0  メール 
olNoteItem 5 メモ
olPostItem 6 投稿
olTaskItem 3 仕事

なので、
olAppointmentItem
の1を指定すれば、なんとか作れそうです。

予定のアイテムを作る oApp.CreateItem(1) olAppointmentItem=1

おっと、肝心のサンプルを忘れてた。
Sub OL_TEST_0425()  'Excel VBA から OutLookを起動して 予定のアイテムを作る

    Dim oApp As Object
    Dim myNameSpace As Object
    Dim myFolder As Object

    Dim strMOJI As String '本文

    Dim objITEM As Object

    'outlook 起動
    Set oApp = CreateObject("Outlook.Application")

    Set myNameSpace = oApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定
    myFolder.Display  '表示 いつものクセで .Visible = True とやりがちだけど


    'アイテムの作成
    Set objITEM = oApp.CreateItem(1) 'olAppointmentItem=1 直値はいけないと思いつつ、
    objITEM.Display   '画面表示(、編集画面を表示)

    'プロパティなどをセットする。
    objITEM.Subject = "件名です"
    objITEM.body = "本文ですよ"
    'objITEM.Save     '保存
    'objITEM.Close 2  '閉じる

End Sub
↑、
Set objITEM = oApp.CreateItem(1) 'olAppointmentItem=1 
で、予定表、アポの1 を渡して、作成して、あとは、
 
   'プロパティなどをセットする。
    objITEM.Subject = "件名です"
    objITEM.body = "本文ですよ"

その後、保存や閉じるなど 動作のメソッドを発行、
    objITEM.Save     '保存
    objITEM.Close 2  '閉じる
そんなパターンかなぁ。

他の予定表を取り出すサンプルページを見たりして、
    objITEM.Subject = "件名です"
    objITEM.body = "本文ですよ"
上記のようなプロパティなどを探って、値をセットしてみてください。

※※↓かなり参考になるページ↓
Hey, Scripting Guy! 月曜日から金曜日まで毎日開催される会議のスケジュールを 2 週間分設定する方法はありますか
http://gallery.technet.microsoft.com/scriptcenter/0cf13024-3405-4180-9c8f-8fc4307d513f

↑私のサンプルが子供に見えるほど、大人のページ。。。私も精進しないとねぇ。 何かの参考となれば幸いです。 調子こいて、動画作りながら探るのは止めようと思いつつ、失礼します。

#TaskITEM

仕事・タスクアイテム 連絡先など

[予定表と仕事、連絡先を使ったサンプル]
では、
Application.ActiveInspector.CurrentItem
を使い、開いているアイテムを取得してみたり、

また、
複数選択された連絡先(ContactItem)を取得したかった時は
Application.ActiveExplorer.Selection を 使い、
[Outlook VBA 選択された連絡先の氏名+フリガナを使い、仕事を作成]
したりしました。
意外と、Outlookは奥が深いですね。

VBAでOutlookを操作する

概要を見て、おっ、と感じたらタイトルのリンク先に飛んで読んでください
何かの参考となれば、幸いです

概要とリンク先

[No.55 Outlookを操作してメールを送りたい]
Set oApp = CreateObject("Outlook.Application")
で、Outlookのアプリケーションを操作するためのオブジェクトを作成してます。
次に、メールアイテムを
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
で作成して、データをメールアイテムにセットする
objMAIL.To = "test@ken3.org" '宛先
objMAIL.Subject = "テストメールです" '件名
objMAIL.Body = strMOJI '本文の代入
セット後、.Displayで編集画面を表示したり、.Sendで送信したり

[No.56 Outlookから複数のアドレスにBCC送信]
やりたいことは、BCCで複数の宛先を指定することなので、
Dim strBCC As String 'BCC宛先の変数を定義
'文字列で宛先を作る
strBCC = "test@ken3.org ; excel@ken3.org ; access@ken3.org"
objMAIL.BCC = strBCC '宛先の文字列を渡す
なんて感じで、;セミコロン区切りの文字列を.BCCにセットしただけです

[No.78 Outlookでファイルを添付するには?.Attachments.Add]
Attachmentsオブジェクトのヘルプをみて、.Addを探り
objMAIL.Attachments.Add "e:\work\test.txt"
なんて感じで、.Attachments.Add ファイルのパスで添付ファイルをセットしました

[No.101 Outlookの重要度フラグ .Importance = olImportanceHigh]
送信メールの「重要度フラグ」をプログラム(VB)で操作することは可能なのでしょうか??
と質問をもらい、Importance プロパティを発見する
myitem.Importance = olImportanceHigh とセットしてみました。
使用できる定数は(重要度のフラグは)
olImportanceHigh olImportanceLow olImportanceNormal でした。

[No.161 Outlook VBAでフラグ作成 .FlagStatus .FlagRequest .FlagDueBy]
メールにフラグを作成したかったので、
objMAIL.FlagStatus = 2 'olFlagMarked (2)をセット参照設定時は定数で
objMAIL.FlagRequest = "CD返却の件連絡ください" 'フラグ内容をセット
objMAIL.FlagDueBy = DateAdd("d", 5, Now) '期限は5日後をセット
とフラグ関係のプロパティに値をセットしただけでした。
サンプルの実行結果は↓


[No.169 Outlookで複数のファイルを添付するには?]
Dir関数を使用して複数のファイル名を取得して、添付ファイルを作成しました。
    strBASEPATH = "C:\Documents and Settings\user2000\My Documents\"
    strFILETYPE = "*.xls"  'マッチングパターン
    strFileName = Dir(strBASEPATH & strFILETYPE) 'DIR関数にPATH+*.xlsを渡す
    '↑すると、一番最初の名前が返ってくる(順不同)
    '名前がなくなるまでループ
    While strFileName <> ""   'ファイル名が""空文字以外の間ループする
        'ファイル名を使って処理を行う
            '↓1つ1つ添付する ↓↓パス+ファイル名を渡す
        objMAIL.Attachments.Add strBASEPATH & strFileName 
        '↓次の名前の処理に移るには、Dir関数を引数無しで呼び出します
        strFileName = Dir  '←引数無しで次のパターンを取り出せる
    Wend
    '↑こんな感じでループを作って1つ1つファイルを処理してみました。

[No.171 Outlook VBA 受信MailにフラグをSET .Folders .Itemsを探る]
.Folders .Itemsを使い、受信トレイからメールアイテムを取り出し、受信済みのメールにフラグをセットしてみました。
下記、メールアイテムをリストボックスへセットするサンプルです
Private Sub UserForm_Initialize()
    'フォームの初期化イベントでリストボックスにメールデータをセットする
    Dim objOL      As Object 'OutLookのアプリケーションオブジェクト
    Dim objNAMESPC As Object '名前空間
    Dim objFLD     As Object 'フォルダー保存用
    Dim objMAIL    As Object 'メールアイテム
    Dim strWORK As String

    Me.lstMAIL.Clear  '.Clearでリストボックスの内容を全てクリア
    'アプリケーションのオブジェクトを新規作成
    Set objOL = CreateObject("Outlook.Application")
    'Namespace オブジェクト作成
    Set objNAMESPC = objOL.GetNamespace("MAPI")
    'フォルダーの下、第二階層.Foldersでループさせる
    For Each objFLD In objNAMESPC.Folders(1).Folders
        'フォルダー名が受信トレイか?
        If objFLD.Name = "受信トレイ" Then
            'フォルダーのアイテム数分ループ Folders.Items
            For Each objMAIL In objFLD.Items
                '作成日:題名で文字列を作成する
                strWORK = objMAIL.CreationTime & ":" & objMAIL.Subject
                'データをセット
                Me.lstMAIL.AddItem (strWORK)
            Next objMAIL
        End If
    Next objFLD
    '後始末
    objOL.Quit
End Sub

[No.183 VBA Outlook リッチテキスト形式のメール で グラフを送る]
メールの形式を指定したかったので、
objMAIL.BodyFormat = 3 'olFormatRichText=3 で リッチテキスト形式へ
とプロパティをセットして、リッチテキスト形式にしました。
次に、Excelのグラフをコピーしたかったので、
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.ChartArea.Select
Application.CutCopyMode = False
ActiveChart.ChartArea.Copy
で、コピーしました(単にマクロ記録で記録しました。)

貼り付け の コマンドを実行したかったので、
Set oCBs = objMAIL.GetInspector.CommandBars
でコマンドバーを取り出し、
Set oCtl = oCBs.FindControl(, I)
を If oCtl.Caption = "貼り付け(&P)" で 探し、
  oCtl.Execute '↑で見つけた oCtl 貼り付けコマンド(outlook)を実行

でも、なんか動作が不安定です。。。

仕事・タスクのサンプル:
[Outlook VBA 選択された連絡先の氏名+フリガナを使い、仕事を作成]

予定表サンプル:
[予定表と仕事、連絡先を使ったサンプル]
[Outlook 予定表、ラベルのデータを取り出し 書き換えるテスト]


VBA Outlookのオブジェクトの探り方

これも、私の我流な三流的攻略法だけど、
Outlookのオブジェクトの探り方は、

Outlookを起動します。
^^^^^^^^^^^^^^^^^^^^^
起動後、Alt+F11を押します。
すると、VBAのいつものよく見かける画面が表示されます。
※ExcelやAccessで参照設定したあとでもOKです。

ここで、探りたいオブジェクトの適当な変数を定義します。
Dim aa as 
とか入力すると、なんと、mailitemとか出てきます。


↑オブジェクトの変数が表示された例

そこで、
Dim aa as MailItem
と、メールのアイテム型の変数を定義します。
※これは、オブジェクト名前とかで狙いを付けて、
  まぁ、失敗してもやり直すって感じで。
(女性をデートの誘う時もこれくらい気軽に?できたらいいね(オイオイ))

次は、狙いをつけた女性の身に付けているブランド品や行動パターンじゃなくって、
あたりをつけた、オブジェクトのプロパテイやメソッドを探ります。

ここは、いきなりアタックって感じで、
Dim aa as MailItem
と定義してから、aa.とaaさんにアタックします。
すると、プロパティやメソッドが表示されるので、
それらしいプロパティ・メソッドの名称を選択します。

おっ、aaさんの行動は(メソッドは)これだとか、
ここも経験や当てずっぽうに推理します。
※出たとこ勝負もアリでしょう or パターンでなんとなくわかったり・・・


↑MailItemの.FlagStatus フラグのステータスを探して、選択したところです。

次は、そのプロパティにカーソルを合わせ、F1のヘルプを見る。
あれれ・・・ハズシタ(笑)フリダシニ戻る
や
OK、目的のプロパティ、メソッドだった、となります。

探り方、まとめるとこんな感じで、
該当するオブジェクト型の変数を定義
Dim aa as MailItem
その後、
aa.
と、候補を表示させ、それらしいのにアタック。

aa.FlagStatus と選択後、カーソルを合わせてからF1のヘルプを見る。

そんな流れでいつもVBAのプロパティ、メソッドを探ってます。
※もっと効率の良い、
  女の子(オブジェクト)へのアタック方法もあるんだろうけど・・・

あとは、世の中のチャラ男やナンパ男の成功例を見て自分も真似したいので、
GoogleやYahooで探したプロパティ、メソッドをキーワードにして事例を検索します。

すると、
.xxxxx プロパティはひどい女だったよ、
期待させておいてボッタクリのバグかよ・・・
とか
口説き落とすテクや扱い方の注意事項が載ってます。

まぁ、そのまま真似してもいいし、アレンジしてもいいし。

ヘルプで添付をキーワードに調べると

ヘルプで例えば、[添付]をキーワードに調べると。
.Attachments.Add
ってのが見つかる。(ネットでoutlook 添付で探すと一発だけど)

嘘つくなよテメエ、ExcelVBAのヘルプにそんなの無いぞ。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
素人だと思ってバカにしやがって、いつもヘルプ見ろヘルプ見ろってうるせえ。
Excelのヘルプで添付が出てこないから聞いてんだろ。

まぁまぁ、そんなに興奮しないでよ、どこかの危険な掲示板じゃないんだから。
えっと、これ、Outlookを起動してから、Alt+F11押すと、
OutlookのVBA編集画面が出るんですよ。

ここで、F1(ヘルプ)押して添付とキーワード入力をすると、
Attachmentsオブジェクトを見つけることが出来ます。
※outlook2000,20002からで、97は出ません(残念、、、)


↑ヘルプの検索イメージ

さてと、
Attachmentsオブジェクトのヘルプを見ると、
---
アイテムに添付ファイルを追加するには、Add メソッドを使用します。 

一貫した結果を得るには、アイテムの Attachments コレクションのオブジェクトを
追加したり削除したりする前に、アイテムを必ず保存します。

次の VBA の例は、新しいメッセージを作成し、Q496.xls ファイルをリンクではなく
添付ファイルとして添付し、その添付ファイルにわかりやすいキャプションを付けます。
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
myItem.Save
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\My Documents\Q496.xls", _
    olByValue, 1, "1996 年の第 3 四半期報告"
---

なんて載ってます。

[ページ内のTOPへ戻る]

ページフッター

Googleで情報を探す

せっかくホームページに来ていただいたのに、検索の紹介 ぉぃぉぃ
サイト指定や期間の指定を組み合わせて実行してみてください。

Google
探す言葉:
ググる。↑VBAなど 気になる単語や,オブジェクト(MailItem),プロパティ(.Body)やメソッド(.Move)などを入れて検索してみてください。

サイト指定:人気QAサイト や 一次情報MS本家を指定する
条件無し WWW 全体から検索も良いけど↓で絞り込むのもおススメです
一次情報・二次情報まとめから探る
一次情報は基本のMSDN含む microsoft.comから
まとめ一次・二次情報 Qiita 知識を記録・共有 qiita.comで個人まとめを参考に
手前味噌の三次情報 三流君メモBlog ken3memo.hatenablogから検索
QAサイトの質問から探る
QAはやっぱり人の多いYahoo知恵袋 chiebukuro.yahoo.co.jpから探る
こちらもどうぞ おしえてgoo! oshiete.goo.ne.jp
15分探して見つからなかったら?回答率90%以上 teratail.com
私も利用中 最近過疎ってる失礼 人力検索 q.hatena.ne.jp
意外と穴場? 2ch 5ch.netから探す
検索実行: ←オプション確認後に検索ボタンを押してください

期間指定:情報の鮮度も大切?
指定なし(全て)※不変の情報を得るには指定無しが一番?
3日以内 最新の更新情報を探す時など。
3ヶ月 これはあまり使わないかも
1年以内の更新なら情報鮮度もOK?バランス型
3年も経てばOfficeもバージョンUP?
検索実行: ←オプション確認後に検索ボタンを押してください

メッセージ送信

ここまで、読んでいただきどうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:


アドレス:に返事をもらいたい
感想や質問↓:


対応速度・緊急度:
(回答・感想は下記のようにしてHPで記事に載せてます) 例:[XXXXさんへ回答例]←みたいに回答していたり...
とても急ぎで連絡がほしい、そんな時は:[twitter三流君DM]に気軽に連絡してください。

[三流君(TOPへ)] / [VBAで楽しく] / [記事一覧]
カスタム検索