Excel VBA質問箱 IV

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

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


6344 / 13646 ツリー ←次へ | 前へ→

【45784】エクセル kyuzou 07/1/14(日) 11:31 質問[未読]
【45785】Re:エクセル ぱっせんじゃー 07/1/14(日) 11:36 発言[未読]
【45786】Re:エクセル kyuzou 07/1/14(日) 12:24 回答[未読]
【45787】Re:エクセル ぱっせんじゃー 07/1/14(日) 12:37 発言[未読]
【45788】Re:エクセル ぱっせんじゃー 07/1/14(日) 12:39 発言[未読]
【45789】Re:エクセル kyuzou 07/1/14(日) 12:59 お礼[未読]
【45790】Re:エクセル ぱっせんじゃー 07/1/14(日) 13:21 発言[未読]
【45791】Re:エクセル ぱっせんじゃー 07/1/14(日) 13:22 発言[未読]
【45794】Re:エクセル Kein 07/1/14(日) 16:57 回答[未読]

【45784】エクセル
質問  kyuzou  - 07/1/14(日) 11:31 -

引用なし
パスワード
   エクセルシートをメール送信する場合で、OUTLOOKの「電子メールのメッセージの本文として現在のシートを送信する」機能を使う場合のVBAの記述を教えてくださいませんか。社内間での周知のみに使いたく、シートは添付する必要もないため、この機能を使いたいのです。

【45785】Re:エクセル
発言  ぱっせんじゃー  - 07/1/14(日) 11:36 -

引用なし
パスワード
   Http://www.ken3.org/cgi-bin/group/vba_outlook.asp

Body
にセルの値を代入させてやればいいです。

【45786】Re:エクセル
回答  kyuzou  - 07/1/14(日) 12:24 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>Http://www.ken3.org/cgi-bin/group/vba_outlook.asp
>
>Body
>にセルの値を代入させてやればいいです。

ご回答ありがとうございます。
追加の質問ですみませんが、
シートが次のような場合はどうすればいいのでしょうか?
1.セルは複数あるので、範囲指定で送信
2.表を作成しており、罫線や色等をそのままの状態で送信
よろしくお願いします。

【45787】Re:エクセル
発言  ぱっせんじゃー  - 07/1/14(日) 12:37 -

引用なし
パスワード
   シートを添付したほうが早いのでは?

【45788】Re:エクセル
発言  ぱっせんじゃー  - 07/1/14(日) 12:39 -

引用なし
パスワード
   あまりお勧めではなく、方法も知りませんが、
HTML形式にしてタグを埋め込むんだらご希望の
ことが出来るかもしれません。

【45789】Re:エクセル
お礼  kyuzou  - 07/1/14(日) 12:59 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>あまりお勧めではなく、方法も知りませんが、
>HTML形式にしてタグを埋め込むんだらご希望の
>ことが出来るかもしれません。

ありがとうございます。
添付ファイルでは受信者がファイルを開く動作が必要になりますので、
添付方法は使いたくないのです。
エクセルのファイル(F)→送信(D)→メールの宛先(M)→メッ
セージ本文として現在のシートを送信(B)の操作ではちゃんと送信
できているのですが、VBAでも簡単に記述できないものもあるの
でしょうね。

【45790】Re:エクセル
発言  ぱっせんじゃー  - 07/1/14(日) 13:21 -

引用なし
パスワード
   シートのイメージを画像ファイルにして送信
という手もありますね。

【45791】Re:エクセル
発言  ぱっせんじゃー  - 07/1/14(日) 13:22 -

引用なし
パスワード
   ↑でもこれじゃ添付ファイルになるかな?
メールの背景にする、という手があることを
聞いたことがありますが、やったことあり
ませんので解説できません・・・。

【45794】Re:エクセル
回答  Kein  - 07/1/14(日) 16:57 -

引用なし
パスワード
   ファイルを開く必要はありますが、アクティブシートのスナップショットを
画像ファイルに落として、ネットワーク越しに相手のマシンのルートフォルダーへ
送る。ということは出来ます。以下のマクロを標準モジュールの先頭から入れて
>WshShell.CurrentDirectory = "\\IBM\F"
を相手先に変更してから任意のシートを開き、実行して下さい。
作成されるファイル名は、"ExcelSt" & 現在の日時 & ".jpg" です。

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Const VK_SNAPSHOT = &H2C

Sub Mk_Excel_SShot()
  Dim WshShell As Object
  Dim DefP As String, DvN As String, XLSc As String
 
  Set WshShell = CreateObject("WScript.Shell")
  On Error Resume Next
  WshShell.CurrentDirectory = "\\IBM\F"
  If Err.Number <> 0 Then
   MsgBox "コピー先PCがLANに接続されていません", 48
   Set WshShell = Nothing: Exit Sub
  Else
   MsgBox "アクティブウィンドウのスナップショットを" & _
   vbLf & "画像ファイルにして送ります。", 64
  End If
  On Error GoTo 0
  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
  DoEvents
  Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0)
  DoEvents
  With Application
   If IsError(.Match(xlClipboardFormatBitmap, _
   .ClipboardFormats, 0)) Then
     MsgBox "スクリーンショットは失敗しました", 48: GoTo ELine
   End If
  End With
  XLSc = WshShell.CurrentDirectory & "\ExcelSt" & _
  Format(Now(), "yymmdd_hhmm") & ".jpg"
  With Charts.Add
   .Paste
   .Export XLSc, "JPEG"
   .Delete
  End With
ELine:
  With Application
   .CutCopyMode = False
   .DisplayAlerts = True
   .ScreenUpdating = True
   DefP = .DefaultFilePath
  End With
  DvN = Left$(DefP, InStr(1, DefP, "\")): ChDrive DvN
  WshShell.CurrentDirectory = DefP: Set WshShell = Nothing
End Sub

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