: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

ข้อสอบแบบปรนัย แบบเลือกตอบ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
WRKU
Member
Member
Posts: 5
Joined: Thu Aug 07, 2014 8:25 pm

ข้อสอบแบบปรนัย แบบเลือกตอบ

#1

Post by WRKU »

โปรแกรมนี้ อยากจะเขียนต่อยอดจากบทความ การควบคุม Option Button ที่สร้างขึ้นเองด้วย VBA wordpress/custom-option-button/

จากบทความเราเปลื่ยนทิศทางจากแนวตั้งให้เป็นแนวนอน ก็จะเป็นข้อสอบปรนัยแบบเลือกตอบ ก. ข. ค. ง.

1 ข้อ จะต้องเขียน Sub Function 4 ชุด
10 ข้อ จะต้องเขียน Sub Function 40 ชุด

เลย อยากเขียน Sub Function เดียวใช้ได้ทุกข้อ(ทุก Shape) แต่ติดอยู่ที่ว่า เมื่อเราเอา mouse คลิก รูปภาพ แบบ Shape แล้วอยากได้ Name ของ Shape นั้นเพื่อส่งค่าผ่านตัวแปร เพื่อจะนำไปเช็คเงื่อนไขต่อไป

สรุปคำถามแบบ เหมารวมคือ ช่วยแนะนำ วิธีเขียน Code vba ให้มันสั้นกว่านี้หน่อยครับ
You do not have the required permissions to view the files attached to this post.
ZEROV
Member
Member
Posts: 73
Joined: Thu Jun 03, 2010 6:31 pm

Re: ข้อสอบแบบปรนัย แบบเลือกตอบ

#2

Post by ZEROV »

Shape ทุกตัวสามารถกำหนดมาโครเดียวกันแต่จะทำงานไม่เหมือนกันได้
ค้นคำ
onaction property,application.caller

ตัวอย่าง Code

Code: Select all

Sub Action1()
Dim shp As Shape
Set shp = ActiveSheet.Shapes(Application.Caller)
With shp
.Width = .Height
.OnAction = "Action2"
[a1] = TypeName(shp) & " " & shp.Name
End With
End Sub
Sub Action2()
Dim shp As Shape
Set shp = ActiveSheet.Shapes(Application.Caller)
With shp
.Width = .Height * 2
.OnAction = "Action1"
[a1] = TypeName(shp) & " " & shp.Name
End With
End Sub
WRKU
Member
Member
Posts: 5
Joined: Thu Aug 07, 2014 8:25 pm

Re: ข้อสอบแบบปรนัย แบบเลือกตอบ

#3

Post by WRKU »

ขอบคุณ มากๆ ครับ
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: ข้อสอบแบบปรนัย แบบเลือกตอบ

#4

Post by snasui »

:D สำหรับการทำงานลักษณะนี้เราจะใช้ Option Button มาช่วย แต่หากต้องการสร้าง Obj ขึ้นเองก็ย่อมได้แต่จะยุ่งยาก

ใน Link ที่ผมเขียนไว้นั้นเป็นตัวอย่างหนึ่งที่เป็นการจัด Group ของ Object ด้วย Code ทำขึ้นอย่างง่าย ๆ

กรณีมี Object เป็นจำนวนมาก สามารถใช้ Code ตามด้านล่างเข้าไปจัดการได้ โดย Assign Macro ให้กับ Oval ทุกตัวครับ

Code: Select all

Sub test0()
    Dim obj As Object, objOther As Object
    Dim objRow As Integer, point As Integer
    Set obj = ActiveSheet.Shapes(Application.Caller)
    objRow = obj.TopLeftCell.Row
    '1 is column d and 4 is column g
    point = obj.TopLeftCell.Column - 3
    For Each objOther In ActiveSheet.Shapes
        If objOther.TopLeftCell.Row = objRow Then
            If objOther.Name = obj.Name Then
                objOther.Fill.ForeColor.RGB = rgbRed
                ActiveSheet.Cells(objRow, "h").Value = point
            Else
                objOther.Fill.ForeColor.RGB = rgbWhite
            End If
        End If
    Next objOther
End Sub
WRKU
Member
Member
Posts: 5
Joined: Thu Aug 07, 2014 8:25 pm

Re: ข้อสอบแบบปรนัย แบบเลือกตอบ

#5

Post by WRKU »

codeที่เขียน มาเป็นอาทิตย์ เหลือแค่นี้เอง

code ของ อาจารย์
ใช้งานง่าย สะดวกกว่าเดิม แค่ Assign Macro ให้กับ Oval ทุกตัว ก็ทำงานตรงเงื่อนไขแล้ว
แล้วยังไม่ต้องเสียเวลาตั้งชื่อ shape อีก ประหยัดเวลามากครับ
Post Reply