: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

การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
สมควร
Member
Member
Posts: 3
Joined: Mon Nov 23, 2015 9:40 am

การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#1

Post by สมควร »

รบกวนด้วยครับ
1. List box 1คือผมต้องการให้เลือกกลุ่มจังหวัดของข้อมูล
2. รับค่าจากList box 1 มาแสดงใน List box 2 คือปีของข้อมูลในกลุ่มจังหวัดที่มี
3. คลิกเลือกปีของข้อมูล แล้วแสดงผล กราฟเป็นวงกลมครับ
ซึ่งผมลองเขียน แล้วครับแต่ยังสับสนอยู่ครับ

Code: Select all

Private Sub ListBox1_Click()
subject = ListBox1.Text
'ListBox2 = ListBox1.Text

    Call SortData
    Call SumInOut
 Select Case subject
            Case "South"
                If C1 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C1 = 1
            Case "SouthBorder"
                If C2 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C2 = 1

            Case "Songkhla"
                If C3 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C3 = 1
               
             Case "Stun"
                If C4 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C4 = 1

            Case "Pattani"
                If C5 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C5 = 1

            Case "Yala"
                If C6 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C6 = 1

            Case "Naratiwat"
                If C7 > 0 Then
                Sheets(subject).ChartObjects.Delete
                End If
                Call DrawGraphDay
                C7 = 1
          ListBox2 = ListBox1.Text
              End Select
   
End Sub
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#2

Post by bank9597 »

:) แนบไฟล์ตัวอย่างมาดูหน่อยครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
สมควร
Member
Member
Posts: 3
Joined: Mon Nov 23, 2015 9:40 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#3

Post by สมควร »

ตามไฟล์แนบครับ
ผมอยากให้ดึงข้อมูลแต่ล่ะปีแล้วแสดงกราฟออกมาครับ
ขอบคุณมากน่ะครับ
Attachments
Project P3.xlsm
(60.53 KiB) Downloaded 19 times
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#4

Post by bank9597 »

:) สิ่งที่ต้องขอความร่วมมือมีดังนี้ครับ

1. ระบุปัญหาว่าเกิดขึ้น ณ จุดใด ฟอร์มไหน โมดูลใด
2. หยิบปัญหาขึ้นมาถาม แค่ 1 ปัญหา ต่อ 1 ครั้ง และแก้ให้จบไปที่ละปัญหา
3. ไม่แนบมาทั้งระบบ เพราะผู้ตอบไม่ทราบครับว่ามีปัญหาส่วนไหน
4. ควรมีตัวอย่างคำตอบหรือผลลัพธ์ที่อยากได้ประกอบมาด้วยเสมอ
5. โค๊ดที่อยู่ในไฟล์ ต้องเขียนมาเอง พยายามยามอย่าไปคัดลอกมา แล้วให้ผู้ตอบทำให้ หรือแก้ให้ทั้งหมด

เท่าที่ผมดูแล้ว เจอปัญหา และข้อผิดพลาดเช่น

1. ฟังก์ชื่อ DrawGraphDay มีอยู่จริงไหม ลองตรวจสอบดู
2. โค๊ดที่เขียนใน Object Form ไม่ควรสร้างฟังก์ชั่นที่เป็น Public หรือ ประกาศตัวแปรที่เป็น Public เพราะถึงยังไงก็เรียกใช้จากที่อื่นไม่ได้ และอาจจะจะไปซ้ำซ้อนกับ Global Function หรือ Global Variable ได้
3. การเขียนโค๊ดให้รับค่าจาก ListBox ไม่เหมือนกับการรับค่าจาก textbox
4. การสั่งให้โค๊ดทำงาน ควรอยู่ใน event อื่น เช่น OnChange, AfterUpdate เป็นต้น ไม่ใช่ OnClick

เท่าที่ดูผ่านๆ เจอปัญหาตามที่กล่าวไว้ครับ ลองเริ่มต้นในการตั้งคำถามใหม่ครับ :)
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
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: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#5

Post by snasui »

bank9597 wrote: :)

2. โค๊ดที่เขียนใน Object Form ไม่ควรสร้างฟังก์ชั่นที่เป็น Public หรือ ประกาศตัวแปรที่เป็น Public เพราะถึงยังไงก็เรียกใช้จากที่อื่นไม่ได้ และอาจจะจะไปซ้ำซ้อนกับ Global Function หรือ Global Variable ได้
:D การประกาศ Function เป็น Public ใน UserForm สามารถเรียกใช้จาก Module ต่างๆ ได้ และหากเขียน Function ที่ Module สามารถเรียกใช้ใน Worksheet ได้ครับ

กรณีประกาศตัวแปรซ้ำซ้อนโดยใช้ชื่อเดียวกันใน Scope เดียวกัน โปรแกรมจะฟ้องว่า Duplicate หรือ Ambiguous name แต่หากประกาศคนละ Scope สามารถใช้ได้หากไม่สับสนกับตนเองและผู้ที่จะมาทำงานนี้ต่อครับ :mrgreen:
สมควร
Member
Member
Posts: 3
Joined: Mon Nov 23, 2015 9:40 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#6

Post by สมควร »

ขอบคุณมากครับ
ผมขอสอบถามเพิ่มเติมครับ หากผมต้องการแขวน โปรแกรมมาโคร VBA ไว้ในเว็บที่เขียนด้วย PHP สามารถทำได้หรือไม่ครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#7

Post by bank9597 »

การประกาศ Function เป็น Public ใน UserForm สามารถเรียกใช้จาก Module ต่างๆ ได้
:D ผมได้ทดสอบแล้วครับ ไม่สามารถเรียใช้ได้ครับ

ผมเขียนฟังก์ชั่นไว้ใน Form1 ประการเป็น Public Function

จากนั้นเรียกใช้งานจาก Form2 ผลลัพธ์คือ ไม่ได้ครับ

ผมสร้างโมดูลขึ้นมา แล้วเรียกใช้ฟังก์ชั่นใน Form2 ผลลัพธ์คือ ไม่ได้ครับ

ผิดพลาดประกาศใด แนะนำผมด้วยครับ
Attachments
TestFunction.xlsm
(16.34 KiB) Downloaded 14 times
Capture.PNG
Capture.PNG (7.22 KiB) Viewed 177 times
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#8

Post by bank9597 »

สมควร wrote:ขอบคุณมากครับ
ผมขอสอบถามเพิ่มเติมครับ หากผมต้องการแขวน โปรแกรมมาโคร VBA ไว้ในเว็บที่เขียนด้วย PHP สามารถทำได้หรือไม่ครับ
:D ไม่ได้ครับ VBA คือ Visual Basic For Application สามารถใช้งานได้ใน Application นั้นๆ ซึ่งแต่ละแอพพลิเคชั่นจะมี object ที่ต่างกันไป
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
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: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#9

Post by snasui »

:D ตัวอย่างการเรียกใช้งาน Function ที่เขียนใน UserForm ผ่านทาง Module ปกติครับ

Code: Select all

Sub Test()
        MsgBox frmForm.f_msgAlert("Hollow World")
End Sub
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การเรียกใช้ Graph ใน VBA ทำอย่างไรครับ

#10

Post by bank9597 »

ขอบคุณมากครับ :)
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply