Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7154 / 13644 ツリー ←次へ | 前へ→

【40802】教えてください。 あーりん 06/7/24(月) 14:10 質問[未読]
【40809】Re:添付ファイル付きメールの送信 H. C. Shinopy 06/7/24(月) 16:09 回答[未読]
【40812】添付ファイル付きメールの送信 あーりん 06/7/24(月) 16:30 お礼[未読]
【40816】メールの送信付き返信ボタン付メール あーりん 06/7/24(月) 17:06 質問[未読]
【40822】Re:メールの送信付き返信ボタン付メール H. C. Shinopy 06/7/24(月) 19:36 回答[未読]
【40844】メールの送信付き返信ボタン付メール あーりん 06/7/25(火) 9:13 お礼[未読]
【40845】Re:教えてください。 注意 06/7/25(火) 9:22 発言[未読]
【40848】ご注意いただき、ありがとうございます。 あーりん 06/7/25(火) 10:31 お礼[未読]

【40802】教えてください。
質問  あーりん  - 06/7/24(月) 14:10 -

引用なし
パスワード
   過去ログの以下のページを参考にVBAを作っていたのですが、
http://www.vbalab.net/vbaqa/data/excel/log/tree_698.htm
ゴンタさんのところに記述してある
myItem.Body = "sss"のところを改行などをして
メールの本文を入力したいのですが、どのようにしたらよいでしょうか?

そして、myItem.Sendこの記述のあと、必ず確認メッセージが出るのですが
そのメッセージを出ないようにできませんか?

ご存知の方いらっしゃったら、お返事お待ちしております。

【40809】Re:添付ファイル付きメールの送信
回答  H. C. Shinopy  - 06/7/24(月) 16:09 -

引用なし
パスワード
   「添付ファイル付きメールの送信」に関する質問と解釈して回答します。

1.改行については、「&」で vbCrLfを文字列に継ぎ足すことで可能。

2.確認メッセージなしの送信について・・・
私の環境のExcel 2002では、条件付きで可能であることを確認しております。
あーりん様のExcelのバージョンでは、動作するでしょうか?

動作する条件に関しては、下記マクロの『注記』を御覧ください。

注記2.の「Microsoft Outlookが起動済みの状態・・・」ですが、
会社などでパソコンを使う場合、大抵はWindows起動と同時にOutlookを起動し、
メール受信待ちのため、Outlookのウィンドウを最小化していると思いますので、
この状態で即時に送信可能という意味です。
(無論、通常表示・最大表示でも即時に送信可能)

Sub MyXlMailAtt()
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Rem Excelブック添付ファイルOutlook電子メール送信処理
 Rem 言語:Excel VBA
 Rem 機能...
 Rem  開いているExcelのブックを電子メールの添付ファイルとして送信する。
 Rem 注記...
 Rem  1. Microsoft Outlook上で、下記の手作業による事前設定が必要。
 Rem   Microsoft Outlookのメニューバーの[ツール]から[オプション...]をクリックし、
 Rem   [メール形式]タブの[電子メールの編集にMicrosoft Wordを使用する]チェックボックスを
 Rem   オンにする。(既定値)
 Rem  2. Microsoft Outlookが起動済みの状態である場合、すぐに電子メールが送信される。
 Rem   起動してない場合は、これを起動して[送受信]ボタンを押して送信する必要がある。
 Rem  3. [電子メールの編集にMicrosoft Wordを使用する]場合、警告なしに送信する。
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Rem 参照設定する場合...
 Rem  Microsoft Outlook 10.0 Object Library
 Rem  Microsoft Word 10.0 Object Library
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Dim MyOutlook As Variant ' Outlook.Application
 Dim MyMail As Variant ' MailItem
 Dim myWinState As String
 Dim myWord As Variant ' Word.Application
 Dim myCmmdBar As CommandBar
 Dim myCtrl As CommandBarControl
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 '
 Select Case True
  Case Len(ActiveWorkbook.Path) = 0
   MsgBox "新規作成のブックです。" & vbCrLf _
    & "一旦、名前を付けて保存して下さい。", vbCritical + vbOKOnly, "MyXlMailAtt"
   Exit Sub
  Case ActiveWorkbook.Saved = False
   MsgBox "ブックが更新されています。" & vbCrLf _
    & "一旦、上書き保存して下さい。", vbCritical + vbOKOnly, "MyXlMailAtt"
   Exit Sub
 End Select
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 '
 On Error Resume Next
 Set MyOutlook = GetObject(, "Outlook.Application")
 If Err.Number <> 0 Then
  Set MyOutlook = CreateObject("Outlook.Application")
 End If
 On Error GoTo 0
 '
 Set MyMail = MyOutlook.CreateItem(0) ' = myOutlook.CreateItem(olMailItem)
 With MyMail
  .Subject = "このメールはテストです。"
  .To = "xxxxxxxxx@xxx.com"
  .BCC = "xxxxxx@xxxx.ne.jp"
  .FlagRequest = "凄い!"
  .Importance = 2 ' = olImportanceHigh
  Rem  0 = olImportanceLow / 1 = olImportanceNormal
  Rem メッセージ形式...
  Rem  テキスト形式の場合、書式設定(文字色・蛍光ペン書式など)は無効になる。
  .BodyFormat = 1 ' = olFormatPlain / 2 = olFormatHTML
  .Attachments.Add ActiveWorkbook.FullName
  .Body = "sss" & vbCrLf & "添付ファイルを送付します。" & vbCrLf & "ttt"
  .Display
 End With
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 '
 On Error Resume Next
 Set myWord = GetObject(, "Word.Application")
 If Err.Number <> 0 Then
  Rem [電子メールの編集にMicrosoft Wordを使用する]でない場合
  Rem [送信]ボタンを表示させる。
  MyOutlook.ActiveInspector.CommandBars("Standard").Visible = True
  Rem MsgBox表示のため、開いているシートをアクティブ状態にする。(苦肉の策)
  AppActivate Application.Caption
  MsgBox "[送信]ボタンを押して下さい。", vbMsgBoxSetForeground, "MyXlMailAtt"
  MyOutlook.ActiveInspector.Activate
  GoTo MyXlMailAttSubExit
 End If
 On Error GoTo 0
 '
 On Error Resume Next
 myWord.CommandBars("Zzz").Delete
 On Error GoTo 0
 '
 Set myCmmdBar = myWord.CommandBars.Add(Name:="Zzz", Position:=msoBarPopup, Temporary:=True)
 With myCmmdBar.Controls
  Set myCtrl = .Add(Type:=msoControlButton, ID:=3708)
  With myCtrl
   ' .Visible = True
   .Caption = "送信"
   .DescriptionText = "電子メールの送信コマンドを実行します。"
   .Execute
  End With
 End With
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 '
MyXlMailAttSubExit:
 Set MyOutlook = Nothing
 Set MyMail = Nothing
 Set myWord = Nothing
 Set myCmmdBar = Nothing
 Set myCtrl = Nothing
End Sub ' MyXlMailAtt *----*----*  *----*----*  *----*----*  *----*----*

【40812】添付ファイル付きメールの送信
お礼  あーりん  - 06/7/24(月) 16:30 -

引用なし
パスワード
   H. C. Shinopy 様

大変ためになるお返事いただきありがとうございます。
投稿をしてから、自分のボキャブラリのなさに
答えを頂けるかどうか、とっても心配でした。

私のPCの環境はおふぃす2003なので
H. C. Shinopy様の教えていただいた事はできそうです。
早速試してみます!
ありがとうございました。

【40816】メールの送信付き返信ボタン付メール
質問  あーりん  - 06/7/24(月) 17:06 -

引用なし
パスワード
   H. C. Shinopy 様

追加で教えてください。
このメールを送信するときに、YESNOボタンをつけたりは可能ですか?
もし出来ればボタンを付けたメールを送信したいのですが。。。

【40822】Re:メールの送信付き返信ボタン付メール
回答  H. C. Shinopy  - 06/7/24(月) 19:36 -

引用なし
パスワード
   返信ボタンの設定は、VotingOptions プロパティを指定すればできます。

ヘルプを見ましたが、使用例がなくて不親切ですね。
「セミコロン ( ; ) で区切られた文字列型 (String) の値」を指定するとあります。

 With MyMail
  ...
  .Attachments.Add ActiveWorkbook.FullName

  .VotingOptions "Yes;No"  ' ←返信ボタンの設定 [Yes] [No]

  .Body = "sss" & vbCrLf & "添付ファイルを送付します。" & vbCrLf & "ttt"
  ...
 End With

【40844】メールの送信付き返信ボタン付メール
お礼  あーりん  - 06/7/25(火) 9:13 -

引用なし
パスワード
   H. C. Shinopy様

しょうもない質問に親切かつ迅速なお返事大変感謝致しております。
他の方々の参考にもなれば、尚うれしいですね!
本当にありがとうございました m(。−_−。)m

【40845】Re:教えてください。
発言  注意  - 06/7/25(火) 9:22 -

引用なし
パスワード
   VBA質問箱基本ポリシー
http://www.vbalab.net/bbspolicy.html
>タイトルは内容を示すものに
>記事のタイトルは、その質問の内容が端的にわかるようなものにしてください。
>単に「教えてください」とか「困っています」などといったタイトルでは、回答
>者があなたの質問をクリックしない可能性が非常に高くなります。すなわち、回
>答がつかない可能性が高くなる、ということです。

【40848】ご注意いただき、ありがとうございます。
お礼  あーりん  - 06/7/25(火) 10:31 -

引用なし
パスワード
   ご注意いただき、ありがとうございます。
リンクをつけていただいたところを見たのは、送信した後でした。。。
てんぱってたのでしょうか・・・
申し訳ありません。
以後、気をつけます。

7154 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free