: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

คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#1

Post by Aantsugar »

อยากให้ไฟล์ที่เราแนบลิงค์ ปิดอัตโนมัติ เมื่อเราคลิกไฟล์ลิงค์นั้นไปแล้ว เมื่อคำสั่งเวลาในไฟล์ Excel หมดเวลาแล้ว ให้ไฟล์ที่เราคลิกลิงค์ ปิดไฟล์นั้นอัตโนมัติเหมือนกันคะ ไฟล์ลิงค์เป็น Word เราต้องเขียน คำสั่ง VBA ในไฟล์ Excel หรือ ไฟล์ Word คะ พอกดคลิกที่ไฟล์ Excel ที่ TEST เวลาจะนับถอยหลัง พอหมดเวลา ไฟล์ Excel ปิด แต่ไฟล์ที่เราคลิกลิงค์ไปไม่ปิดเองอัตโนมัติคะ :roll: :roll: Code ที่เขียนมาที่ รบกวนอาจารย์ช่วยดูว่าติดอะไรตรงไหนคะ ตามแนบไฟล์ ขอบคุณคะ :D

Code: Select all

Sub Macro1()
    Windows("TEST WORK EXCEL.xls").Activate
    ThisWorkbook.Close
End Sub
Attachments
TEST File.xls
(94 KiB) Downloaded 21 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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#2

Post by snasui »

:D ช่วยปลดรหัสการเข้าถึง Code ด้วยครับ Code ที่เขียนมาตามโพสต์ด้านบน ไม่สื่อถึงสิ่งที่ต้องการจะทำคือสั่งให้ปิดไฟล์ที่เปิดมาตาม Hyperlink

แนวทางการเขียน Code ให้ควบคุม Microsoft Office อื่นนั้น ควรกำหนดตัวแปรให้กับโปรแกรมนั้น ๆ ที่จะเปิด ซึ่งไม่ใช่เป็นการเปิดด้วย Hyperlink เพราะอาจจะซับซ้อนถึงขั้นเรียก Windows API เพื่อปิดไฟล์ที่เปิดตาม Hyperlink แต่จะเปิดด้วย Code ในไฟล์หลัก เมื่อไฟล์หลักปิดจึงจะสามารถสั่งให้ปิดไฟล์ตามตัวแปรที่กำหนดได้

ช่วยแจ้งมาด้วยว่าติดปัญหาที่ Procedure ใด บรรทัดใด จะได้เข้าถึงปัญหาโดยไวครับ
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#3

Post by Aantsugar »

:D ขอโทษคะที่ลืมปลดล็อคไฟล์ :lol: ลองเขียนปรับ Code ดูใหม่แต่พอ Run แล้ว Error คะอาจารย์
รบกวนอาจารย์ดู Code ให้คำชี้แนะด้วยคะ ตามไฟล์แนบ :roll: :roll: :D
Attachments
TEST File.xls
(89 KiB) Downloaded 17 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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#4

Post by snasui »

:D Error คืออะไร ใน Code Module ใด ที่บรรทัดใด แจ้งมาด้วยครับ
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#5

Post by Aantsugar »

Error ที่ Module2 คะ บรรทัดที่ 6 คะ :roll: :cry: :D
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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#6

Post by snasui »

:D โปรแกรมฟ้องว่าอะไรแจ้งมาด้วยครับ
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#7

Post by Aantsugar »

แต่พอ Run Module2 แล้ว จะเกิดข้อผิดพลาดที่บรรทัด
Set msWord = App.Document.Open
ฟ้องว่า Compile error : Variable not defined คะ
รบกวนอาจารย์ว่าเกิดไรคะ
ขอบคุณคะ :D
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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#8

Post by snasui »

:D เกิดจากคำสั่ง App ต้องเขียนให้เต็มเป็น Application ยกเว้นจะประกาศให้ Application เป็น App จึงจะใช้เช่นนั้นได้

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

Code: Select all

Sub Search()
    Dim wdApp As Word.Application, msWord As Word.Document
    Set wdApp = CreateObject("Word.Application")
    Set msWord = Application.Documents.Open("D:\my document\Test File\TEST WORD.doc")
    wdApp.Visible = True
End Sub
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#9

Post by Aantsugar »

ปรับ Code ตามอาจารย์ แล้ว
เกิดข้อผิดพลาดที่บรรทัด
Set msWord = Application.Documents.Open("D:\my document\Test File\TEST WORD.doc")

พอ Run ฟ้อง Error Run-time error '438' : Object doesn't support this property or method
:cry: :? :roll:
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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#10

Post by snasui »

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

Code: Select all

Set msWord = wdApp.Documents.Open("D:\my document\Test File\TEST WORD.doc")
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#11

Post by Aantsugar »

ขอบคุณคะ :thup: อาจารย์ :D :D :D
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#12

Post by Aantsugar »

อาจารย์คะ :D ติดตรงอีกอย่างคะ :roll:
ตอนกด TEST ตรงหน้า Sheet หน้าแรก แล้วเวลาจะนับถอยหลัง แล้วเปิดไฟล์ Word พร้อมกัน พอหมดเวลา ไฟล์ Excel ปิด แต่ไฟล์ Word ไม่ปิดด้วยคะ ไม่ทราบเราต้องเอา Code ไปแทรกในส่วนไหนคะถึงจะให้ไฟล์ปิดพร้อมกัน เมื่อหมดเวลาคะ ตามไฟล์แนบคะ :roll: :roll:
Attachments
TEST File.xls
(90.5 KiB) Downloaded 30 times
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#13

Post by puriwutpokin »

ลองปรับเป็น

Code: Select all

Sub Reset()
Dim Count As Range
Dim objWord As Object
Set Count = Worksheets("TIME").[B7]
Set objWord = GetObject(, "Word.Application")
On Error Resume Next
Count.Value = Count.Value - TimeValue("00:00:01")
    If Count <= 0 Then
   MsgBox "หมดเวลา"
        Application.DisplayAlerts = False
        objWord.Quit
        Application.Save
        Application.Quit
        Exit Sub
    End If
Call Timer
End Sub
:shock: :roll: :D
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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#14

Post by snasui »

Aantsugar wrote:อาจารย์คะ :D ติดตรงอีกอย่างคะ :roll:
ตอนกด TEST ตรงหน้า Sheet หน้าแรก แล้วเวลาจะนับถอยหลัง แล้วเปิดไฟล์ Word พร้อมกัน พอหมดเวลา ไฟล์ Excel ปิด แต่ไฟล์ Word ไม่ปิดด้วยคะ ไม่ทราบเราต้องเอา Code ไปแทรกในส่วนไหนคะถึงจะให้ไฟล์ปิดพร้อมกัน เมื่อหมดเวลาคะ ตามไฟล์แนบคะ :roll: :roll:
:D ย้ายตัแปรเดิมไปเป็นระดับ Module ตัวอย่างตามด้านล่าง

Code: Select all

Option Explicit

Dim CountDown As Date
Dim wdApp As Word.Application, msWord As Word.Document
ตรง Procedure Reset ปรับเป็นด้านล่างครับ

Code: Select all

Sub Reset()
    Dim Count As Range
    Set Count = Worksheets("TIME").[B7]
    On Error Resume Next
    Count.Value = Count.Value - TimeValue("00:00:01")
    If Count <= 0 Then
    MsgBox "หมดเวลา"
        Application.DisplayAlerts = False
        Application.Save
        Application.Quit
        wdApp.Quit
        Exit Sub
    End If
    Call Timer
End Sub
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#15

Post by Aantsugar »

ขอบคุณอาจารย์ snasui และ คุณ puriwutpokin นะคะ :D :cp: :cp: :thup:
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#16

Post by Aantsugar »

สอบถามอีกอย่างคะ :D คือ พอเวลาในคำสั่ง
  • ไฟล์ Excel หมดเวลา
ตอนเราพิมพ์ข้อมูลในไฟล์ Word มันไม่แจ้งเตือน MsgBox "หมดเวลา" ให้คะ อยากให้แสดง MsgBox "หมดเวลา" แจ้งเตือนในไฟล์ Word ด้วยคะ ขอคำแนะนำด้วยคะ :roll: ขอบคุณคะ :D
ตัวอย่างตามไฟล์แนบคะ
Attachments
อยากให้แสดง  MsgBox &quot;หมดเวลา&quot; แจ้งเตือนในไฟล์ Word ด้วย
อยากให้แสดง MsgBox "หมดเวลา" แจ้งเตือนในไฟล์ Word ด้วย
test.jpg (13.4 KiB) Viewed 435 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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#17

Post by snasui »

:D คำสั่งเดิมเมื่อหมดเวลามันจะปิด Word ไปด้วย ไม่ทราบว่ายังเป็นคำสั่งนั้นหรือไม่ หากยังเป็นคำสั่งนั้นเกิดการฟ้องอะไรหรือไม่ อย่างไรครับ

ในกรณีที่ถามมานี้ได้เขียนคำสั่งอะไรเพิ่มเข้าไปหรือไม่ ติดขัดบรรทัดใดครับ
Aantsugar
Member
Member
Posts: 68
Joined: Sat Aug 06, 2016 1:29 pm
Excel Ver: 2016

Re: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#18

Post by Aantsugar »

ยังใช้คำสั่งเดิมคะ ไม่ได้เขียนอะไรเพิ่มเติม เวลามันหมดจะปิด Word ไปด้วยคะ แต่ว่ามัน
  • ไม่แจ้งเตือน MsgBox "หมดเวลา" ในหน้า Word
ถึงแม้เวลาในคำสั่ง Excel จะหมดเวลาแล้วเราก็ยังสามารถทำงานในหน้า Word ต่อคะ จนกว่าเราจะคลิกกลับไปหน้า Excel คะมันถึงจะแจ้งเตือน MsgBox "หมดเวลา" คะ :D
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: คำสั่ง VBA ที่กำหนด Hyperlink ปิดแฟ้มอัตโนมัติ

#19

Post by snasui »

:D คำสั่งเดิมคงไม่พอครับ หากทำงานใน Excel แล้วหมดเวลาแต่ไม่คลิกกล่องโต้ตอบเพื่อให้ Code ทำงานต่อโดยปิดโปรแกรม Word แต่กลับไปทำงานใน Word ต่อ งานลักษณะนี้สามารถเขียนจับเวลาด้วย Windows API ครับ :arrow: http://www.cpearson.com/excel/OnTime.aspx
Post Reply