Announcement

Collapse

ยินดีต้อนรับสู่ Excel Expert Training Forum

กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม
See more
See less

รบกวนขอโค้ด VBA นำกราฟไปยัง Outlook

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • รบกวนขอโค้ด VBA นำกราฟไปยัง Outlook

    Sub Mail()
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
    .To = Range("A1")
    .CC = Range("A2")
    .Subject = Range("A3")
    .Body = ต้องการนำกราฟมาไว้ในส่วนนี้ครับ
    .Display
    End With
    End Sub
    Attached Files

  • #2
    ผมใช้วิธีก๊อปปี้ไว้ใน ClipBoard แล้วนำไปวางครับ
    Sub Mail()
    Dim OutApp As Object
    Dim OutMail As Object

    Dim MyInspector As Object
    Dim MyRng As Object


    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.ChartArea.Copy


    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
    .To = Range("A1")
    .CC = Range("A2")
    .Subject = Range("A3")
    Set MyInspector = .GetInspector
    Set MyRng = MyInspector.WordEditor.Range
    MyRng.Paste

    .Display
    End With
    End Sub

    Comment


    • #3
      ขอบพระคุณมากๆเลยครับ รบกวนถามเพิ่มเติมครับกรณีมีหลายกราฟ ถ้าต้องการให้เว้นบรรทัดลงมาควรเขียนอย่างไรครับ (ตามรูปแนบ)
      Attached Files

      Comment


      • #4
        ถ้าต้องการจัดหน้าตาที่ outlook ด้วย แบบนี้คงใช้วิธีเก็บใน Clipboard ไม่ได้
        สิ่งที่ต้องทำคือต้อง collect ทุกกราฟไว้ แล้วจึงไปสั่ง วางใน outlook ทีละ chart

        แต่ช่วงนี้ผมเดินทางพอดี คงต้องรอสมาชิกท่านอื่นมาช่วยดู หรือจะเอาไปโพสต์ถามในกลุ่ม คนรัก excel
        น่าจะได้คำตอบเร็วดีเหมือนกันครับ

        Comment


        • #5
          Sub Mail()
          Dim OutApp As Object
          Dim OutMail As Object
          Dim MyInspector As Object
          Dim MyMail As Object
          Dim cht As Object

          Set OutApp = CreateObject("Outlook.Application")
          Set OutMail = OutApp.CreateItem(0)

          With OutMail
          .To = Range("A1")
          .CC = Range("A2")
          .Subject = Range("A3")
          Set MyInspector = .GetInspector
          Set MyMail = MyInspector.WordEditor

          For Each cht In ActiveSheet.ChartObjects
          cht.Copy
          MyMail.Range(0, 0).Paste
          MyMail.Range(0, 0).InsertAfter Chr(10)
          Next cht

          .Display
          End With

          End Sub

          พอลองแล้วไม่ต้อง collect ก็ได้ครับ

          Comment

          Working...
          X