Page 1 of 1

การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 4:09 pm
by tigerwit
ได้ทดลองสร้าง CommandButton เพื่อทำเป็นปุ่มนำทางไปชีทอื่น ๆ
ติดขัดตรงที่ต้องการให้ CommandButton แสดงข้อความตามที่เราต้องการ
ตัวอย่างเช่น ให้ CommandButton1 แสดงข้อความที่ปรากฎ ในเซล a2 เราจะต้องไปกำหนดที่ใด

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 4:50 pm
by snasui
:D ตอนนี้ผมไม่ได้ใช้ Excel 2003 เลยจับภาพ Excel 2013 มาให้

กรณีใช้ Excel 2003 ที่เครื่องมือสำหรับวาด ActiveX Control ให้คลิกปุ่ม Design Mode แล้วทำข้อ 3 เป็นต้นไปครับ

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 5:18 pm
by tigerwit
ลองแล้วครับ...
ไม่ได้ตามความต้องการ

ความต้องการคือ ถ้าข้อความที่เซล a2 เปลี่ยนเป็นอย่างอื่น เช่น จาก ภาษาไทย เป็น ภาษาอังกฤษ
captionใน commanbutton1 ก็เปลี่ยนตามไปด้วย

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 5:25 pm
by snasui
tigerwit wrote:ความต้องการคือ ถ้าข้อความที่เซล a2 เปลี่ยนเป็นอย่างอื่น เช่น จาก ภาษาไทย เป็น ภาษาอังกฤษ
captionใน commanbutton1 ก็เปลี่ยนตามไปด้วย
:lol: ควรแจ้งเช่นนี้มาตั้งแต่แรกครับ ตามความต้องการนี้ต้องใช้ VBA ครับ

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 5:34 pm
by tigerwit
:rz: อาจตั้งคำถามไม่ครอบคลุม
ต้องขอโทษด้วยครับ
พยายามนานมากแล้ว ไม่ได้สักที
ลองกับ พวก AutoShape พอไปได้
แต่กับ Command Button มืดแปดด้าน

รบกวนเรื่อง Code VB กรณีนี้ด้วยครับ
ไปำม่ถูกจริง ๆ

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 5:38 pm
by snasui
:D ต้องขออภัยที่ไม่ตอบ VBA ให้ก่อนเพื่อความเสมอภาคของสมาชิกทุกท่านครับ ลองบันทึก Macro ตามขั้นตอนที่ผมแนะนำแล้วปรับใช้ดู ติดตรงไหนสามารถถามมาได้เรื่อย ๆ ครับ

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 7:34 pm
by tigerwit
มั่วมาแล้วครับ
ได้อย่างต้องการแต่ไม่สมบูรณ์

Code: Select all

Private Sub Workbook_Activate()
Dim r As Range
Dim r2 As Range
Set r = Worksheets("sheet1").Range("a2")
Set r2 = Worksheets("sheet1").Range("a3")
ActiveSheet.CommandButton1.Caption = r
ActiveSheet.CommandButton2.Caption = r2
End Sub
ปัญหาคือ..
1. ต้องการให้ เมื่อเซล a2 เปลี่ยนแปลงข้อมูลไป Caption เปลี่ยนตามทันที ไม่ต้องรอ ปิด-เปิด ชีทใหม่
เราจะวางโค๊ดไว้ Event ใด
2. ถ้ามีหลาย ๆ ปุ่มที่ต้องการให้เปลี่ยนแปลง ต้องประกาศตัวแปร ให้ เซลทุกเซลอย่างที่ผมทำนี้หรือไม่ครับ
หรือมีวิธีเขียนให้สั้นกว่านี้

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Mon Nov 12, 2012 7:50 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างและนำไปไว้ใน Sheet1 ครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A3")) Is Nothing Then
        ActiveSheet.CommandButton1.Caption = Range("A2")
        ActiveSheet.CommandButton2.Caption = Range("A3")
    End If
End Sub

Re: การกำหนด Capion ของ CommandButton ใน excel

Posted: Tue Nov 13, 2012 2:46 pm
by tigerwit
ประยุกต์ใช้ได้แล้วครับ
ขอบคุณครับ