ここから本文です

vbs 大変恐縮ですが教えてくださいませ。 下記にてメールしますが、件名に、今開...

jun********さん

2018/3/1711:38:25

vbs 大変恐縮ですが教えてくださいませ。
下記にてメールしますが、件名に、今開いているエクセルブックの
シートのセルの内容にすることってできますか?

例えば
im.Subject = "依頼書+(エクセルブック【依頼書】のシート【123】のセルB10)+月分"
それと
送信するファイルがZIPではなく、エクセルファイルの場合は
どのようにしたらよいですか?
ファイルを2つ送信することも出来ますでしょうか?
ご教示よろしくお願いします。


Option Explicit
Dim im, ol, so, wa
Set so = CreateObject("Scripting.FileSystemObject")
Set wa = WScript.Arguments
If wa.Count <> 1 or LCase(so.GetExtensionName(wa(0))) <> "zip" Then
MsgBox("ドラッグ&ドロップできるのは、zipファイル1つだけです")
WScript.Quit
End If
Set ol = CreateObject("Outlook.Application")
Set im = ol.CreateItem(0)
im.To = "abcd@****.co.jp"
im.Subject = "件名"
im.Body = "依頼書です"

im.Attachments.Add wa(0)
im.Send
Set im = Nothing
Set ol = Nothing
Set wa = Nothing
Set so = Nothing
MsgBox("メールを送信しました")

閲覧数:
55
回答数:
1

違反報告

ベストアンサーに選ばれた回答

Prometheusさん

2018/3/1712:46:23

それでは、今回は、どのようなファイルがドラッグ&ドロップされても調べていません。

もちろん、間違いがあってはいけない、ということでしたら、

If wa.Count <> 1 or LCase(so.GetExtensionName(wa(0))) <> "zip" Then
MsgBox("ドラッグ&ドロップできるのは、zipファイル1つだけです")

の2行を

If wa.Count <> 1 or LCase(so.GetExtensionName(wa(0))) <> "xlsx" Then
MsgBox("ドラッグ&ドロップできるのは、xlsxファイル1つだけです")

としてください。

これで、拡張子が「xlsx」ファイル以外ですと、受け付けません。

ただし、どちらにしても、添付ファイルは1つだけです。

それから、エクセルのブックは、1つだけ開いておいてください。

複数のブックが開いていると、どうなるか分かりません。

また、シート名は、必ず全角で「123」です。

ただ、そのシートを前面に表示して頂くのが一番分かりやすく、その場合は、シート名の指定ではなく、以下のように変更してください。

「Set sh = bk.Worksheets("123")」→「Set sh = bk.ActiveSheet」

これで、エクセルで、現在、表示されているシートが処理対象シートになります。

Option Explicit
Dim bk, ex, im, ol, sh, so, wa
Set so = CreateObject("Scripting.FileSystemObject")
Set wa = WScript.Arguments
If wa.Count <> 1 Then
MsgBox("ドラッグ&ドロップできるのは、ファイル1つだけです")
WScript.Quit
End If
Set ex = GetObject(, "Excel.Application")
Set bk = ex.Workbooks(1)
Set sh = bk.Worksheets("123")
Set ol = CreateObject("Outlook.Application")
Set im = ol.CreateItem(0)
im.To = "abcd@****.co.jp"
im.Subject = "依頼書" & sh.Range("B1").Value & "月分"
im.Body = "依頼書です"
im.Attachments.Add wa(0)
im.Send
Set im = Nothing
Set ol = Nothing
Set wa = Nothing
Set so = Nothing
MsgBox("メールを送信しました")

  • 質問者

    jun********さん

    2018/3/1715:10:06

    一つだけ お願いします。

    本文にセルの値を下記のように入れたいです。
    im.Body = "本文です。 & vbCrLf & vbCrLf & ここにセルC10の値。& vbCrLf & vbCrLf & 以上です。”

    本文です。

    3月

    以上です。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/3/17 15:47:36

lin_nyan36様
この度は貴重な時間をとらせてしまい
恐縮します。
おかげさまで完了しました。
感謝申し上げます
ありがとうございます

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる