Excel VBA質問箱 IV

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

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


97 / 13165 ツリー ←次へ | 前へ→

【79591】エクセルの表を画像としてoutlookに貼り付けた後に、高さを指定したいです。 たま 18/1/30(火) 8:28 質問[未読]
【79592】Re:エクセルの表を画像としてoutlookに貼り... γ 18/1/31(水) 12:12 回答[未読]
【79596】Re:エクセルの表を画像としてoutlookに貼り... γ 18/1/31(水) 23:01 回答[未読]

【79591】エクセルの表を画像としてoutlookに貼り...
質問  たま E-MAIL  - 18/1/30(火) 8:28 -

引用なし
パスワード
   エクセルの表をoutlookに画像として貼り付けるコードを書きました。
メールを印刷する時にちょうど良いサイズになるよう、貼り付け後のサイズ指定をしたいのですが、どのようなコードを追加すればよいでしょうか。
よろしくお願い致します。

dim ap as object
set ap =createobject("outlook.application")

set w1=worksheets("コメント")
dim g as long
g=w1.cells(rows.count,1).end(xlup).row

with ap.activeinspector.wordeditor.windows(1).selection
w1.select
range(cells(1,1),cells(g,1)).select
selection.copypicture
.paste
.typetext chr(13)&chr(13)
end with

【79592】Re:エクセルの表を画像としてoutlookに貼...
回答  γ  - 18/1/31(水) 12:12 -

引用なし
パスワード
   【79578】outlookメールにセル貼り付け
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=79578;id=excel
とは同じ方ですか?

貼り付け後の図形を縮小すればどうですか?
1ページに収まるかどうかは本文の多寡にもよりますし、
自動判定は難しいでしょう。
(そうしたことを簡単にリクエストするのはいかがかと思います。
 提示されたコードもなんだかという感じですが。)

テキストベース+添付ファイルとするほうが普通は歓迎されるはずです。
以下は参考まで。

Sub test()
  Dim Ap As Object
  Dim M As Object
  Dim g As Long
  Dim w1 As Worksheet
  
  Set w1 = Worksheets(1)
  g = w1.Cells(Rows.Count, 1).End(xlUp).Row
  w1.Range(w1.Cells(1, 1), w1.Cells(g, 1)).CopyPicture

  Set Ap = CreateObject("Outlook.Application")
  Set M = Ap.CreateItem(0)
  M.BodyFormat = 3      'リッチテキスト形式
  M.To = "test@test";     'アドレス
  M.Subject = "テスト"    '件名
  M.display          '画面を表示
  
  With Ap.Activeinspector.Wordeditor.Windows(1)
    .Selection.Paste
    With .Document.InlineShapes(1)
      .ScaleHeight = 50
      .ScaleWidth = 50
    End With
  End With
End Sub

【79596】Re:エクセルの表を画像としてoutlookに貼...
回答  γ  - 18/1/31(水) 23:01 -

引用なし
パスワード
     高さを指定するなら、
  With .Document.InlineShapes(1)
    .ScaleHeight = 50
    .ScaleWidth = 50
  End With
  のところは以下のようにして下さい。

  Dim ratio as Double
  と宣言しておき、
  With .Document.InlineShapes(1)
    ratio = .Width / .Height
    .Height = 500#    '例。 定数定義しておいたほうがベター
    .Width = ratio * .Height
  End With
  とします。

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