:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#1

Post by modtanoi »

สมาชิกใหม่...มือใหม่หัดทำ
ทดสอบทำตาม http://snasui.blogspot.com/2011/06/comment-dynamic.html แต่ทำไม่ได้ครับ :?:
รบกวนช่วยแนะนำข้อผิดพลาดให้หน่อยนะครับ

Sheet1

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        ChangePicInComment
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Application.DisplayCommentIndicator = xlCommentAndIndicator
    Else
        Application.DisplayCommentIndicator = xlCommentIndicatorOnly
    End If
End Sub
Module

Code: Select all

Sub ChangePicInComment()
    Dim PicName As String
    On Error Resume Next
    PicName = Range("A1")
       Range("A1").Comment.Shape.Select
       Selection.ShapeRange.Fill.UserPicture "D:\" & PicName & ".jpg"
    Range("A1").Select
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#2

Post by snasui »

:D การจะให้ภาพแสดงใน Comment ได้ต้อง Add Comment เอาไว้ก่อนครับ

ลองคลิกขวาที่ A1 แล้วเลือก Insert Comment จากนั้นทดสอบเลือก Validation ดูครับ
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#3

Post by modtanoi »

snasui wrote::D การจะให้ภาพแสดงใน Comment ได้ต้อง Add Comment เอาไว้ก่อนครับ

ลองคลิกขวาที่ A1 แล้วเลือก Insert Comment จากนั้นทดสอบเลือก Validation ดูครับ
ทำสำเร็จแล้วครับ
ขอบคุณมากครับ :thup:
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#4

Post by modtanoi »

:?: สอบถามปัญหาเพิ่มเติมครับ
1. ผสานเซลล์ A B C แถวที่ 1 เข้าด้วยกัน เขียน code เลือกเซลล์ไม่ถูกต้องแก้ไขยังไงครับ (แต่ถ้าไม่ผสานเซลล์สามารถแสดงผลได้ครับ)
2. คัดลอกเซลล์ข้อ 1 วางซ้ำกันหลายแถว(ข้อมูลชุดเดียวกัน) เขียน code ให้แสดงผลยังไงครับ

ขอบคุณมากครับ :D
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#5

Post by snasui »

:D ช่วยโพสต์ Code ที่ลองเขียนเองแล้วมาด้วยครับ
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#6

Post by modtanoi »

ใช้สูตรเหมือนเดิมกับกระทู้ข้างบนครับแต่เปลี่ยนแค่ตำแหน่งจากเซลล์เดียวเป็นเซลล์ผสานแทนแต่ไม่แสดงผลครับ
เช่น ผสานเซลล์ A1:C1 ตำแหน่งเซลล์คือ A1 (เหมือน excel ระบุ) แต่ VBA ไม่รู้จักมั๊งครับ
ผมก็เลยลองเดาเปลี่ยนตำแหน่งแหน่งเซลล์ไปเลื่อยแต่ก็ทำไม่ได้ครับ หาทางออกไม่เจอเลยมาขอคำปรึกษาครับ
(มือใหม่หัดทำ หากรบกวนประการใดต้องขออภัยมา ณ ที่นี้ด้วยครับ)
ยกตัวอย่าง code ที่ผมลองเดาดูครับ อันนี้เป็นทำในเซลล์ผสานและหลายแถว(ข้อมูลชุดเดียวกัน)

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1:$A$10" Then
        ChangePicInComment
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1:$A$10" Then
        Application.DisplayCommentIndicator = xlCommentAndIndicator
    Else
        Application.DisplayCommentIndicator = xlCommentIndicatorOnly
    End If
End Sub

Code: Select all

Sub ChangePicInComment()
    Dim PicName As String
    On Error Resume Next
    PicName = Range("A1:A10")
       Range("A1:A10").Comment.Shape.Select
       Selection.ShapeRange.Fill.UserPicture "D:\Menu\" & PicName & ".jpg"
    Range("A1:A10").Select
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#7

Post by snasui »

:D กรณีผสานเซลล์เช่น ผสาน A1:C1 เราสามารถเลือกใช้ Code Range("A1")(1) เพื่อเลือกเซลล์ที่ผสานกันได้ครับ
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#8

Post by modtanoi »

1. ทำตามที่แนะนำไม่สำเร็จเลยครับ
เปิดอ่านจากเว็ปอื่น ก็เดาอยู่หลายวิธีก็ยังทำไม่สำเร็จเหมือนกันครับ
ใครทำได้บ้างช่วยชี้แนะด้วยครับ

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

Code: Select all

Sub AddPics()
'
' AddPic# Macro
'

'
For Each Cell In Selection
    ThisPicture = "D:\Menu\" & Cell.Value & ".jpg"
    With Cell.AddComment
        .Shape.Fill.UserPicture ThisPicture
        .Shape.Fill.Transparency = 0#
        .Shape.Line.Weight = 0.75
        .Shape.Line.DashStyle = msoLineSolid
        .Shape.Line.Style = msoLineSingle
        .Shape.Line.Transparency = 0#
        .Shape.Line.Visible = msoTrue
        .Shape.Line.ForeColor.RGB = RGB(0, 0, 0)
        .Shape.Line.BackColor.RGB = RGB(255, 255, 255)
        .Shape.Fill.Visible = msoTrue
        .Shape.Fill.ForeColor.RGB = RGB(255, 255, 255)
        .Shape.Fill.BackColor.RGB = RGB(255, 255, 225)
        .Shape.LockAspectRatio = msoFalse
        .Shape.Height = 50.25
        .Shape.Width = 57.75
        ActiveCell.Comment.Visible = False
    End With
Next Cell
End Sub
ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#9

Post by snasui »

:D ลองแนบไฟล์มาครับเผื่อจะได้ปวดหัวน้อยลง ถ้าไม่แนบไฟล์โอกาสปวดหัวมีเท่าเดิมหรือมากขึ้นครับ :mrgreen:
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#10

Post by modtanoi »

ก่อนส่งก็เดาไปหลายกระบวนท่า :lol:
รบกวนช่วยด่านแรกให้ผ่านหน่อยนะครับ (แสดงรูปในรายการ comment)
ด่านต่อไปแสดงรูปแบบมีเงื่อนไข IF
"ตาบอดถามทาง" ต้องขออภัย :mrgreen:
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#11

Post by snasui »

:D จากกรณี Merge Cell และต้องการแสดง Comment หลาย ๆ เซลล์ ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    ChangePicInComment
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly
    If Not Target(1).Comment Is Nothing Then
        Target(1).Comment.Visible = True
    End If
End Sub

Sub ChangePicInComment()
    Dim PicName As String
    On Error Resume Next
    PicName = Selection(1).Value
    Selection(1).Comment.Shape.Select
    Selection.ShapeRange.Fill.UserPicture "D:\Menu\" & PicName & ".jpg"
    Selection(1).Select
End Sub
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#12

Post by modtanoi »

สงสัยปัญหาเพิ่มเติมครับ
1.ทำไมทำ cell เดียว --> แสดงรูปภาพใน comment แล้วไม่มีกรอบขยาย
แต่ทำใน merged cell --> แสดงรูปภาพใน comment แล้วมีกรอบขยาย
มีเทคนิคหรือวิธิเพิ่ม code ให้ไม่แสดงกรอบขยายเหมือนทำใน cell เดียวไหมครับ เพราะเวลาเลือกรายการจะได้ดูรูปง่ายๆ
3.การเปลี่ยนรูปไม่ค่อยราบรื่นเหมือน cell เดียว มีวิธีแก้ไขไหมครับ
cell เดียว --> กดปุ๊บ เปลี่ยนปั๊บ(ทุกครั้ง)
merged cell --> ครั้งแรกกดปุ๊บ เปลี่ยนปั๊บ ครั้งต่อไปไม่เปลี่ยน
Image

ขอบคุณมากครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#13

Post by snasui »

:D แนบภาพมาที่ฟอรัมนี้เลยครับ

ส่วน Code ได้ลองปรับแก้เองแล้วหรือไม่ครับ ช่วยโพสต์ที่ลองแก้เองด้วยครับ
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#14

Post by modtanoi »

เรียน อาจารย์

ปัญหาดังกล่าวข้างต้นสามารถแก้ไขได้(นาน)แล้วครับ แต่มีปัญหาใหม่เพิ่มเติมได้ลองทำ/เดามาหลายครั้งแต่ก็ทำไม่สำเร็จสักที รบกวนอาจารย์ช่วยดูให้หน่อยครับ
1. ซ่อน Comment ถ้าหากแถวนั้นไม่มีข้อความ เช่น การ Delete แถวให้ว่างไม่มีรายการ หรือ เลือกรายการว่างที่เตรียมไว้ใน List
2. ให้แสดง Comment ค้างไว้เฉพาะตอนที่คลิ๊กเลือกรายการหรือตำแหน่งเม้าท์มาชี้ หากเลื่อนเม้าท์ไปที่อื่นให้หายไป

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#15

Post by modtanoi »

เรียน อาจารย์

ปัญหาดังกล่าวข้างต้นสามารถแก้ไขได้(นาน)แล้วครับ แต่มีปัญหาใหม่เพิ่มเติมได้ลองทำ/เดามาหลายครั้งแต่ก็ทำไม่สำเร็จสักที รบกวนอาจารย์ช่วยดูให้หน่อยครับ
1. ซ่อน Comment ถ้าหากแถวนั้นไม่มีข้อความ เช่น การ Delete แถวให้ว่างไม่มีรายการ หรือ เลือกรายการว่างที่เตรียมไว้ใน List ที่ทำได้คือไม่แสดงคอมเม้นค้างในแถวที่ไม่มีข้อมูล แต่ถ้าชี้เม้าท์มาใส่ก็แสดงเหมือนเดิมครับ อันนี้แก้ไม่ให้แสดงยังไม่ได้ครับ
2. ให้แสดง Comment ค้างไว้เฉพาะตอนที่คลิ๊กเลือกรายการหรือตำแหน่งเม้าท์มาชี้ หากเลื่อนเม้าท์ไปที่อื่นให้หายไป

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#16

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static oldCell As Range
    On Error Resume Next
    oldCell.Comment.Select.Visible = False
    Target(1).Comment.Select.Visible = Ture
    Set oldCell = Target(1)
    Application.DisplayCommentIndicator = xlNoIndicator 'Change this line
    If Target(1).Value = "" Then
        Target(1).Comment.Hidden = Ture
    ElseIf Not Target(1).Comment Is Nothing Then
        Target(1).Comment.Visible = True
    End If
End Sub
ใน Worksheet ไม่มี Event การชี้เมาส์จึงไม่สามาถไปดัก Event การชี้เมาส์แล้วให้ทำงานตามต้องการ Code ด้านบนจะแสดง Comment เมื่อคลิกเซลล์ เซลล์ไหนไม่มีค่าก็ไม่แสดงภาพ
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#17

Post by modtanoi »

มีปัญหาเพิ่มเติมเรื่องการ Protect Sheet ไม่สามารถเปลี่ยนรูปได้ครับ
ได้ลองเปลี่ยนจากใช้ฟังก์ชั่นการ Protect Sheet ของ Excel มาเป็น Code(ด้านล่าง) ก็ไม่สามารถเปลี่ยนรูปได้ตามรายการครับ

Code: Select all

Sub MyMacro()
	Sheet1.Unprotect Password:="Secret"
		'YOUR CODE
	Sheet1.Protect Password:="Secret"
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#18

Post by snasui »

:D ลองกำหนดให้เซลล์ที่ถูกเลือกยกเลิกการ Locked เซลล์ดูครับ

ตัวอย่างการ Locked, Unlocked เซลล์ดูที่นี่ครับ http://www.snasui.com/viewtopic.php?p=27301#p27301
modtanoi
Member
Member
Posts: 18
Joined: Sun Feb 03, 2013 6:40 pm

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#19

Post by modtanoi »

ปัญหาใหม่ครับ ลองปรับสูตร Protect Sheet ไปเรื่อย(กำลังจะได้)
ลองปิดไฟล์แล้วเปิดใหม่กลับเจอข้อความแจ้งเตือนครับ

"Excel found unreadable content in '........................xlsm'. Doyou want to remove the content of this workbook? If you trust the source of this workbook, clik Yes."
'
'
'
'
"Removed Part: /xl/drawings/vmlDrawing1.vml part. (Drawing shape)"

Comment ที่สร้างไว้และปรับตำแหน่ง(อย่างเหนื่อย) หายหมดเลย :( เกิดอะไรขึ้นครับ?
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: นำภาพมาแสดงใน Comment แบบ Dynamic ไม่ได้

#20

Post by snasui »

:o ดูเหมือนจะยังไม่มีวิธีแก้สำหรับ Case นี้ สงสัยต้องสร้างใหม่ครับ

อ่านเพิ่มเติมจากที่นี่ครับ http://answers.microsoft.com/en-us/offi ... 6419d1f77c
Post Reply