: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

Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#1

Post by wisitsakbenz »

เรียน อาจารย์ครับ

ต้องการให้เลือก "โรงเรียน" แล้วคลิกปุ่ม Preview

1.ผลลัพท์ใน Sheet "Forms" จะได้แบบด้านล่าง

[●] โรงเรียน [ ]สถานีตำรวจ [ ]โรงพยาบาล
[ ]ร้านค้า [ ]อนามัย [ ]อื่นๆ

2. ให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

3. อยากให้ "ร้านค้า" และ "อนามัย" และ "อื่นๆ" ขึ้นบรรทัดใหม่ด้วย
[●] โรงเรียน [ ]สถานีตำรวจ [ ]โรงพยาบาล
[ ]ร้านค้า [ ]อนามัย [ ]อื่นๆ

4. ถ้าเลือก อื่นๆ จะมี combobox1 ขึ้นมาให้ใส่ค่า เช่น ใส่ค่า "Test" จะแสดง [ ● ]อื่นๆ - Test

[ ] โรงเรียน [ ]สถานีตำรวจ [ ]โรงพยาบาล
[ ]ร้านค้า [ ]อนามัย [ ● ]อื่นๆ - Test

ต้องปรับ Code อย่างไรครับ ขอบคุณครับ

Code: Select all

Sub Preview()

'Define abbreviations for worksheets
    Dim WI As Worksheet
    Dim WF As Worksheet
    Set WI = Worksheets("Input")
    Set WF = Worksheets("Forms")
      
    
     WF.Range("F1Detail") = "=IF(InputDetail=""โรงเรียน"",""[?] โรงเรียน [   ]สถานีตำรวจ [   ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""สถานีตำรวจ"",""[   ] โรงเรียน [ ?]สถานีตำรวจ [   ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""โรงพยาบาล"",""[   ] โรงเรียน [     ]สถานีตำรวจ [ ?]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""ร้านค้า"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล  [ ?]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""อนามัย"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล [   ]ร้านค้า [ ?]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""อื่นๆ"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [ ?] อื่น ๆ"",""""))))))"
    
    
    End Sub
    
Attachments
option11.xlsm
(38.43 KiB) Downloaded 19 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#2

Post by snasui »

:D ตัวอย่าง Code ครับ

ที่ชีต Input

Code: Select all

Private Sub OptionButton1_Click()
    If OptionButton1.Value = True Then Sheets("Input").Range("E3").Value = "โรงเรียน"
    strOriginal = "[ ] โรงเรียน"
    strReplace = "[" & Chr(149) & "] โรงเรียน"
    ComboBox1.Visible = False
End Sub
'Other code
ที่ Module1

Code: Select all

Public strOriginal As String
Public strReplace As String
Dim str As String

Sub Preview()
    str = "[ ] โรงเรียน" & _
        Chr(10) & "[ ] สถานีตำรวจ" & _
        Chr(10) & "[ ] โรงพยาบาล" & _
        Chr(10) & "[ ] ร้านค้า" & _
        Chr(10) & "[ ] อนามัย" & _
        Chr(10) & "[ ] อื่น ๆ"
        str = VBA.Replace(str, strOriginal, strReplace)
    'Define abbreviations for worksheets
        Dim WI As Worksheet
        Dim WF As Worksheet
        Set WI = Worksheets("Input")
        Set WF = Worksheets("Forms")
        
'         WF.Range("F1Detail") = "=IF(InputDetail=""โรงเรียน"",""[?] โรงเรียน [   ]สถานีตำรวจ [   ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""สถานีตำรวจ"",""[   ] โรงเรียน [ ?]สถานีตำรวจ [   ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""โรงพยาบาล"",""[   ] โรงเรียน [     ]สถานีตำรวจ [ ?]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""ร้านค้า"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล  [ ?]ร้านค้า [   ]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""อนามัย"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล [   ]ร้านค้า [ ?]อนามัย [   ]อื่น ๆ "",IF(InputDetail=""อื่นๆ"",""[   ] โรงเรียน [     ]สถานีตำรวจ  [     ]โรงพยาบาล [   ]ร้านค้า [   ]อนามัย [ ?] อื่น ๆ"",""""))))))"
        WF.Range("F1Detail").Value = str
End Sub
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#3

Post by wisitsakbenz »

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

ในกรณีที่เลือก อื่นๆ จะมี combobox1 ขึ้นมาให้ใส่ค่า เช่น ใส่ค่า "Test" จะแสดง [ ● ]อื่นๆ - Test
มันไม่แสดงให้

ต้องปรับ Code อย่างไรครับ ขอบคุณครับ

หมายเหตุ : อยากให้ ● ใหญ่และหนากว่านี้ได้หรือไม่ครับ ขอบคุณครับ

Code: Select all

Private Sub OptionButton6_Click()
If OptionButton6.Value = True Then Sheets("Input").Range("E3").Value = "อื่นๆ"
    strOriginal = "[ ] อื่นๆ"
    strReplace = "[" & Chr(149) & "] อื่นๆ" & "-" & Sheets("Input").Range("E15").Value
ComboBox1.Visible = True
End Sub
Attachments
option11.xlsm
(38.49 KiB) Downloaded 14 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#4

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub OptionButton6_Click()
    If OptionButton6.Value = True Then Sheets("Input").Range("E3").Value = "อื่นๆ"
    Me.Range("E15").Value = InputBox("Please fill your option.")
    strOriginal = "[ ] อื่นๆ"
    strReplace = "[" & Chr(149) & "] อื่นๆ" & "-" & Sheets("Input").Range("E15").Value
'    ComboBox1.Visible = True
End Sub
คำว่า อื่นๆ คีย์ให้เหมือนกันในทุก ๆ ที่ ไม่เช่นนั้นจะไม่สามารถ Replace ได้

ส่วนการกำหนดให้ตัวอักขระเป็นตัวใหญ่ลองไปค้นและเขียนมาเองดูก่อน ติดแล้วค่อยถามกันต่อครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#5

Post by wisitsakbenz »

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

พบปัญหาคือ (ดัง Video แนบครับ)
1.เวลาปิดไฟล์เปิดใหม่ แล้วคลิกปุ่ม New > Preview ใน Sheet "Form" จะไม่แสดงข้อมูลที่เลือก Default ไว้ใน Sheet "Input"
2.ใส่ ชื่อ > Preview ใน Sheet "Form" จะไม่แสดงข้อมูลที่เลือก Default ไว้ใน Sheet "Input"
3. ใส่ ชื่อ > เลือก option > ข้อมูลจะแสดง

บางครั้ง user อาจจะเลือกค่าที่ Default ไว้ แต่ output ที่ออกมาไม่แสดงค่าที่เลือก
ต้องแก้ไข หรือ ปรับ Code อย่างไรครับ ขอบคุณครับ
Attachments
104840.wmv
(422.07 KiB) Downloaded 12 times
option11 (1).xlsm
(52.24 KiB) Downloaded 12 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#6

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub Clear()
    With Worksheets("Input")
        .Range("InputName").Value = ""
        .Range("E15").Value = ""
        .OptionButton1.Value = True
        .OptionButton2.Value = False
        .OptionButton3.Value = False
        .OptionButton4.Value = False
        .OptionButton5.Value = False
        .OptionButton6.Value = False
        .OptionButton7.Value = True
        .OptionButton8.Value = False
        .OptionButton9.Value = False
        .OptionButton10.Value = False
    End With
    strOriginal = "[ ] โรงเรียน"
    strReplace = "[" & Chr(149) & "] โรงเรียน"
    strOriginal1 = "[ ] ฟ้า"
    strReplace1 = "[" & Chr(149) & "] ฟ้า"
End Sub
สังเกตการใช้ With...End With เข้ามาช่วย จะได้ลดการเขียน Code ซ้ำ ๆ ลงได้มาก

การตั้งชื่อ Sub Procedure ไม่ควรให้ซ้ำกับคำสำคัญและไม่ให้ซ้ำกับ Method ของ VBA ไม่ควรตั้งชื่อเป็น Clear, Erase, Remove เพราะอาจจะไปซ้ำกับ Method ได้ครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : อยากให้มี Symbol "[●]" หน้าแต่ละสถานที่ด้วย

#7

Post by wisitsakbenz »

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

ได้แล้วครับ ขอบคุณอาจารย์มากเลยครับ
Post Reply