snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#21
Post
by Supfile2529 » Fri Nov 09, 2012 3:59 pm
snasui wrote: บรรทัดนั้นนำมาจากไหนครับ
บรรทัดนั้น ผมได้มาจาก แหล่งอื่นครับ ลองมาปรับใช้ เหมือนกับที่อาจารย์บอก
รูปก็ Show น่ะครับ แต่ว่า
มองเห็นแต่กรอบรูป และเห็น เครื่องหมายกากบาท สีแดง น่ะครับ
ทำไมเป็นอย่างนั้นหล่ะครับ อาจารย์
ขอบคุณครับ
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#23
Post
by Supfile2529 » Fri Nov 09, 2012 4:10 pm
http://www.outlookcode.com/d/code/htmlimg.htm
Code ผมเอามาแค่บางส่วนนะครับ อาจารย์ ช่วงท้ายเลยน่ะครับ.
Code: Select all
Sub CreateHTMLMail()
'Creates a new e-mail item and modifies its properties.
Dim objMail As Outlook.MailItem
'Create e-mail item
Set objMail = Application.CreateItem(olMailItem)
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = _
"<HTML><BODY>Enter the message text here. </BODY></HTML>"
.Display
End With
End Sub
และแหล่งที่อาจารย์ให้มา ผมดู Code แล้วเป็นประมาณว่า เป็นการ Show ข้อความ หรือเปล่าครับ
แต่ Code ชุดนี้ [b
].BodyFormat = olFormatHTML [/b] ไม่รู้จักครับ งงด้วยครับ BodyFormat
แต่ Code ชุดนี้
.HTMLBody = _
"<HTML><BODY>Enter the message text here. </BODY></HTML>"[/ color] ผมเข้าใจว่ามันเป็น MSG Show น่ะ
ประมาณนี้น่ะครับที่ผม เข้าใจ หรือว่าผมเข้าใจผิดครับ อาจารย์ แนะนำด้วยน่ะครับ
ขอบคุณครับ.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#24
Post
by snasui » Fri Nov 09, 2012 4:21 pm
ผมดูแล้ว Code นั้นต้องเพิ่ม CDO 1.21 library และที่อ่านเร็ว ๆ ก็ต้องเก็บภาพไว้ในเครื่องก่อนอยู่ดี ตอนนี้ยังไม่สะดวกในการทดสอบ หากว่างแล้วจะช่วยดูให้ครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#25
Post
by snasui » Fri Nov 09, 2012 4:24 pm
ไม่ทราบว่าอ่านที่ผมเขียนแล้วเข้าใจว่าอย่างไรครับ
ที่ให้ดูเพิ่มเติมหมายถึงเป็นการใช้ในการแทรก String เข้าไปตามคุณสมบัติของ .HTMLBody ครับ
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#26
Post
by Supfile2529 » Fri Nov 09, 2012 4:28 pm
snasui wrote: ผมดูแล้ว Code นั้นต้องเพิ่ม CDO 1.21 library และที่อ่านเร็ว ๆ ก็ต้องเก็บภาพไว้ในเครื่องก่อนอยู่ดี ตอนนี้ยังไม่สะดวกในการทดสอบ หากว่างแล้วจะช่วยดูให้ครับ
อ่อครับ code ที่ต้องเพิ่ม
CDO 1.21 library คืออะไรครับ งงครับไม่เข้าใจครับ
ช่วยแนะนำหน่อยน่ะครับ
เอาไว้อาจารย์ว่าง ๆ ค่อยดู ก็ได้ครับ
แต่ยังไงก็เป็นความรู้แก่ผมได้มาก ครับ อาจารย์
ขอบคุณครับ.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#27
Post
by snasui » Fri Nov 09, 2012 4:50 pm
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#28
Post
by snasui » Sun Nov 11, 2012 7:35 am
snasui wrote: ผมดูแล้ว Code นั้นต้องเพิ่ม CDO 1.21 library และที่อ่านเร็ว ๆ ก็ต้องเก็บภาพไว้ในเครื่องก่อนอยู่ดี ตอนนี้ยังไม่สะดวกในการทดสอบ หากว่างแล้วจะช่วยดูให้ครับ
สำหรับ Case นี้ผมไม่สามารถทดสอบให้ได้ครับเนื่องจากต้องติดตั้ง CDO ซึ่งเครื่องที่ผมใช้นี้ไม่สะดวกที่จะทำเช่นนั้นครับ
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#29
Post
by Supfile2529 » Mon Nov 12, 2012 7:32 am
snasui wrote: snasui wrote: ผมดูแล้ว Code นั้นต้องเพิ่ม CDO 1.21 library และที่อ่านเร็ว ๆ ก็ต้องเก็บภาพไว้ในเครื่องก่อนอยู่ดี ตอนนี้ยังไม่สะดวกในการทดสอบ หากว่างแล้วจะช่วยดูให้ครับ
สำหรับ Case นี้ผมไม่สามารถทดสอบให้ได้ครับเนื่องจากต้องติดตั้ง CDO ซึ่งเครื่องที่ผมใช้นี้ไม่สะดวกที่จะทำเช่นนั้นครับ
อ่อครับ ขอบคุณมาก ๆ ครับ อาจารย์
เดียวผมจะลงศึกษา และลองทำดู ได้ไม่ได้ยังไง เดียวแจ้งให้ทราบครับ.
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#30
Post
by Supfile2529 » Mon Nov 12, 2012 9:52 am
Code: Select all
Sub CopyObjToGIF()
Dim obj As Object
Dim cht As Excel.ChartObject
Const strPath As String = "C:\"
Application.ScreenUpdating = False
Sheets("Image Send Mail").Shapes.Range( _
Array("Picture 134")).Select
Selection.Copy
With Sheets("Image Send Mail")
Set cht = .ChartObjects _
.Add(0, 0, .Range("A1:O39").Width, .Range("A1:O39").Height)
End With
cht.Chart.Paste
cht.Chart.Export strPath & "ObjPic.gif"
cht.Delete
Set cht = Nothing
Set obj = Nothing
Application.ScreenUpdating = True
End Sub
Array("Picture 134")).Select ขอความช่วยเหลีออีกเรื่องครับ
คือผมอยากจะทราบว่า ผมจะสามารถ Check Name Picture ได้ยังไงครับ
เพราะว่า ทุกทีที่เรา Save ตาม Code ด้านบนนี้ Name Picture จะเปลี่ยนทุกทีน่ะครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#31
Post
by snasui » Mon Nov 12, 2012 11:07 am
กรณีมีภาพเดียวลองปรับ Code เป็นตามด้านล่าง ซึ่งเป็นการใช้ Index เข้ามาช่วยบอกว่าเราต้องการนำ Shape (Object) ตัวที่ 1 มาใช้
Code: Select all
'...
Sheets("Image Send Mail").Shapes(1).Select
Selection.Copy
'...
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#32
Post
by Supfile2529 » Mon Nov 12, 2012 12:42 pm
snasui wrote: กรณีมีภาพเดียวลองปรับ Code เป็นตามด้านล่าง ซึ่งเป็นการใช้ Index เข้ามาช่วยบอกว่าเราต้องการนำ Shape (Object) ตัวที่ 1 มาใช้
Code: Select all
'...
Sheets("Image Send Mail").Shapes(1).Select
Selection.Copy
'...
แล้วถ้าต้องการเข้าไป Check แล้ว Delete ก่อนที่จะทำขั้นตอนต่างต้องใช้ Code ยังไงครับ
Code: Select all
Sub DeleteIMG()
Dim obj As Object
Dim cht As Excel.ChartObject
'Const strPath As String = "C:\"
Application.ScreenUpdating = False
Sheets("Image Send Mail").Shapes(1).Select
cht.Delete
Set cht = Nothing
Set obj = Nothing
Application.ScreenUpdating = True
End Sub
ประมาณนี้หรือเปล่าครับ ผมลองใช้หลักการเดียวกันกับการ Copy Picture ดู แต่ว่ามันใช้ไม่ได้ครับ
ต้องปรับเปลี่ยนอะไรอีกไหมครับ
ขอบคุณมาก ๆ ครับ
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#33
Post
by Supfile2529 » Mon Nov 12, 2012 12:57 pm
แล้วเราสามารถ Check Count Image ได้หรือไหมครับ
ถ้าได้ ขอตัวอย่าง Code หน่อยครับ จะลองไปปรับใช้ดู เพื่อให้ตรงตามจุดประสงค์ที่ต้องการ
ขอขอบคุณทุก ๆ ท่านที่ให้คำปรึกษา และสำคัญที่สุด คือท่านอาจารย์ ขอบคุณมาก ๆ ครับ.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#34
Post
by snasui » Mon Nov 12, 2012 1:28 pm
การลบ Shapes ออกทั้งหมด ลองตามนี้ครับ
Code: Select all
'...
Sheets("Image Send Mail").Shapes.SelectAll
Selection.Delete
'...
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#35
Post
by Supfile2529 » Mon Nov 12, 2012 1:43 pm
snasui wrote: การลบ Shapes ออกทั้งหมด ลองตามนี้ครับ
Code: Select all
'...
Sheets("Image Send Mail").Shapes.SelectAll
Selection.Delete
'...
Code Add Image To Mail เพื่อเพื่อน ๆ ท่านอื่นต้องการนำไปใช้
Code: Select all
.HTMLBody = " " & "<img src='C:\ObjPic.JPG' height=800 width=850>"
ครับผม ขอบคุณมาก ๆ ครับ อาจารย์
ถ้ามีอะไรจะถามอีก ผมจะมาถามใหม่น่ะครับ และจะช่วยตอบคำถามเพื่อน เท่าที่พอจะทราบน่ะครับ
ทุกอย่างได้เสร็จสมบูรณ์แล้ว
ถ้ามีสิ่งใดที่ผม ได้ผิดพลาดไป ก็ต้องขออภัยไว้ ณ ที่นี้ด้วย
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#36
Post
by Supfile2529 » Wed Nov 14, 2012 3:40 pm
Microsoft Office 2003 กับ Microsoft Office 2007 รูปที่ได้ออกมามันต่างกันมาก
Microsoft Office 2003 รูปที่ออกมา สวยไม่ดำ ตัวหนังสือ อ่านออก
Microsoft Office 2007 รูปที่ออกมา ไม่สวย ตัวหนังสือดำมาก จนอ่านไม่ออก
มีวิธีแก้ไข หรือว่ามีวิธี Save Image แบบไหนที่พอจะช่วยให้รูปสวยขึ้นมาอีกหน่อยได้ไหมครับ
เพราะที่ทำงาน มีใช้ทั้ง Microsoft Office 2003 And Microsoft Office 2007 น่ะครับ
ขอบคุณมาก ๆ ครับ.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#37
Post
by snasui » Wed Nov 14, 2012 3:48 pm
ผมไม่ทราบวิธีอื่นใดนอกจากที่ตอบไปแล้วครับ
Supfile2529
Member
Posts: 41 Joined: Fri Nov 09, 2012 8:09 am
#38
Post
by Supfile2529 » Wed Nov 14, 2012 4:10 pm
snasui wrote: ผมไม่ทราบวิธีอื่นใดนอกจากที่ตอบไปแล้วครับ
อ่อครับ ไม่เป็นไรครับ
ขอบคุณมาก ๆ ครับ อาจารย์.