สอน Excel VBA : การใช้ Excel กรอกข้อมูลใน Word ในคลิ๊กเดียว
HTML-код
- Опубликовано: 6 окт 2024
- สาธิตการใช้งาน Excel กรอกข้อมูลใน Word อย่างง่ายโดยใช้ Visual Basic for Application ใน Excel
============================================
แนะนำตัวครับ ผมชื่อ วิภาคย์ นะครับ หวังว่าจะเป็นประโยชน์กับหลายคนนะครับ ทำขึ้นเพราะอยากแชร์ครับ กั๊กไว้แล้วคันปาก 5555
ขอบคุณที่กด Like และ ติดตามนะครับ
============================================
Program : Microsoft Office 2019 or Office365
============================================
Sub Test()
Dim Paragraphe As Object, WordApp As Object, WordDoc As Object
StrFile = ThisWorkbook.Path & "\template.docx"
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(StrFile)
WordDoc.SelectContentControlsByTag("1").Item(1).Range.Text = Range("B1")
WordDoc.SelectContentControlsByTag("2").Item(1).Range.Text = Range("B2")
WordDoc.SelectContentControlsByTag("3").Item(1).Range.Text = Range("B3")
End Sub
============================================
ขอบพระคุณมากครับ ตามหาอะไรแบบนี้มานาน ขอบคุณมากจริงๆ ครับ อยากเรียนด้วยเลยครับผม😃
ขอบคุณมากนะคับ กำลังเรียน vba พอดีเลย
ถ้าต้องการคีย์ข้อมูล Excel เดียว เพื่อใส่ช่องใน Word หลาย ๆ ไฟล์ ทำได้ไหมครับ ขอคำแนะนำด้วยครับ ขอบคุณครับ
ขอบคุณมากเลยนะคะ เป็นประโยชน์มากๆค่ะ
ขอบคุณมากๆเลยค่ะพี่
ขอสอบถามครับช่อที่สีเหลืองที่ให้กรอก ถ้าหากจะเขียนเป็นสูตร vlookup เเทนการกรอกข้อมูลจะได้ไหมครับ
ขอบคุณครับ เป็นประโยชน์มากเลยครับ ขออนุญาตสอบถามเพิ่มเติม กรณีพิมพ์ข้อมูลในคอลัมน์ถัดไปๆ แล้วอยากให้ออกมาเป็นไฟล์ word หลายชุดพร้อมกัน สามารถทำได้ไหมครับ
สามารถทำได้ครับผม
@@wipakxxx พอจะแนะนำวิธีการ หรือคำสั่งเป็นตัวอย่างได้ไหมครับ
@@arausplata6271 ขอข้อมูลเพิ่มเติมได้ไหมครับ ว่าอยากให้การทำงานเป็นอย่างไร เช่น มีฐานข้อมูลค่าน้ำ-ไฟ ของผู้พักอาศัย แล้วอยากทำบิลค่าน้ำค่าไฟในแต่ละเดือนให้ออกมาพร้อมกันตามจำนวนผู้พักอาศัยเป็นไฟล์ Word อย่างนี้เป็นต้น เพื่อที่ผมจะได้แนะนำเบื้องต้นได้ตรงประเด็นกว่าครับ
ส่งออกเฉพาะข้อความเเบบนี้ออกเป็น pdf เพื่อปรินท์ได้ไหมคะ เเล้วก็เพิ่มปุ่ม cleardata นำไปประยุกตฺ์ใช้ได้หลากหลายเลยค่ะ
ถ้าต้องการคีย์ข้อมูลจาก Excel สี่ซีตซึ่งในช่องเดียวกัน เช่น ซีตแรก B1 C1 D1 ซีตสอง B1 C1 D1 ซีตสาม B1 C1 D1 ซีตสี่ B1 C1 D1เพื่อใส่ช่องใน Word เดียวแบบต่อกันไปเลื่อยๆ ด้านล่าง
กรณีเป็นตาราง สามารถทำได้หรือไม่คะ ถ้าได้ต้องทำอย่างไร รบกวนด้วยค่ะ
จะเพิ่มบันทึกข้อมูลใน Excel ด้วยทำได้ไหมครับ
ถ้ามีแบบฟอร์ม word มากกว่า 1 ฟอร์ม ที่ต้องการดึงข้อมูลจาก excel ในคราวเดียวกัน สามารถเพิ่มชื่อไฟล์ .docx เข้าไปได้เลยมั้ยครับ
Word 2007 ทำได้ไหมคะ
ขออนุญาตสอบถามค่ะ ถ้าจะเขียนคำสั่งเพิ่มให้มัน Save As ไฟล์ Word ตามชื่อ Range ใน Excel และปิดไฟล์ Word ลง เนื่องจากเขียนคำสั่งให้มันวนลูป จึงต้องปิด word ลงก่อนค่ะ พอมีคำแนะนำไหมคะ ขอบคุณค่ะ
ตรง NewName ลองปรับให้เป็น Sheets("ชื่อชีท").Range("range ที่ต้องการ").Value ดูครับ
---------------------------------------------------------(code Excel vba)
WordDoc.SaveAs2 Filename:=ThisWorkbook.Path & "\" & NewName, _
FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False, CompatibilityMode:=15
WordApp.ActiveDocument.Close
@@wipakxxx ขอบคุณมากๆนะคะ
@@wipakxxx ขออนุญาตสอบถามเพิ่มเติมค่ะ ถ้าเราจะ save as word เป็น pdf ให้เปลี่ยน code ตรงไหนไหมคะ ขอบคุณค่ะ
รบกวนสอบถามครับ ผม Run Code แล้ว มันไม่ไสามารถเปิดไฟล์ Word ขึ้นมาได้ครับ มันแจ้งว่าไม่พบไฟล์ Word ใน Drive C: ซึ่งผม Save ไว้บน Desktop ไม่ทราบว่าต้องมีการแก้ไข Code ต้องส่วนไหนเหรอครับ? หรือต้อง Save ไฟล์ Word เป็น .dotx แทนเหรอครับ ขอบคุณครับ
แก้ตรงนี้ครับ
StrFile = ThisWorkbook.Path & "\template.docx"
เป็น (ยกตัวอย่างนะครับ ให้ใช้ตำแหน่งที่ตั้งไฟล์ของคุณเอง ในที่นี้เป็นการยกตัวอย่างเฉยๆ)
StrFile = "C:\Users\M.User\Desktop\template.docx"
การรทำแบบเป็นการระบุตำแหน่งของไฟล์ word โดยตรงเลยครับ
ปล.จะเห็นว่าไฟล์ word ของผมนั้นชื่อไฟล์ว่า template และ นามสกุลไฟล์ คือ .docx โดยถ้าไฟล์ที่เราจะทำการเปิดนั้นชื่อและนามสกุลไฟล์ไม่ตรงกับที่เราตั้งค่าไว้ ก็จะไม่สามารถเปิดได้ครับ
ปล. 2 หากไม่อยากยุ่งยาก แนะนำให้นำไฟล์ word ของท่านมาไว้ใน Folder เดียวกันกับไฟล์ Excel แล้วตั้งชื่อไฟล์ว่า template ครับ
@@wipakxxx ขอบคุณมากครับ สอบถามเพิ่มเติมครับ ถ้าเป็นไฟล์ Word Template (.dotx) จะสามารถใช้กับ Code นี้ได้ไหมครับ
คิดว่าได้นะครับ ทั้งนี้ผมยังไม่เคยทดลองเหมือนกัน
@@wipakxxx แอดครับ ถ้าจะดึงข้อมูลจาก Sheet ถัดๆไปด้วย เช่น Sheet1 ถึง Sheet 4 งี้ นี่ต้องใส่คำสั่งอะไรเหรอครับ?
@@siriwasssatroopras6413
ยกตัวอย่างครับ
ของเดิม
WordDoc.SelectContentControlsByTag("1").Item(1).Range.Text = Range("B1")
WordDoc.SelectContentControlsByTag("2").Item(1).Range.Text = Range("B2")
WordDoc.SelectContentControlsByTag("3").Item(1).Range.Text = Range("B3")
ของใหม่ที่ปรับ
WordDoc.SelectContentControlsByTag("1").Item(1).Range.Text = Sheets("Sheet1").Range("B1")
WordDoc.SelectContentControlsByTag("2").Item(1).Range.Text = Sheets("Sheet2").Range("B2")
WordDoc.SelectContentControlsByTag("3").Item(1).Range.Text = Sheets("Sheet3").Range("B3")
ขออนุญาตสอบถามครับ ถ้าเป็นรูปภาพต้องทำอย่างไรครับ?
ruclips.net/video/utMgQQ7qEjE/видео.html
ลองดูตามอันนี้ครับ
@@wipakxxx ขอบคุณมากครับอาจารย์ ผมหมายถึง ใช้เทคนิคเดียวกันนี้ เปลี่ยนจากการกรอกข้อความใน excel เพื่อที่จะ export ไป word เป็นการแทรกรูปภาพในเซลล์ของ excel เพื่อที่จะ export ไป word ต้องทำอย่างไรครับ? รบกวนอาจารย์แนะนำผมหน่อยครับ
อ่ออ ถ้าแบบนี้ต้องไปเขียนใน word จะง่ายกว่าครับ ใช้ตัวคุมฟอร์มในเวิร์ดกับเขียนโค้ดเพิ่มให้ดึงรูปเวลา excel สั่งเปิด word รอติดตามคลิปได้เลยครับผม
@@wipakxxx ขอบคุณอาจารย์มากๆครับ รอติดตามผลงานอยู่เสมอ
ต้องการให้ข้อความใน Excel ไปแสดง ใน Word หลายๆที่ทำอย่างไรครับ
ลองประยุกต์จากโค้ดดูได้ครับ
@@wipakxxx ลองทำกล่องรับข้อความรับข้อมูลจาก Excel มาใหม่แล้ว ตั้งแท็กให้เป็นเลขเดียวกันก็ไม่ได้ครับ มันโชว์ข้อความแค่กล่องเดียว
@@โรงเรียนชุมชนชวนวิทยา-ฌ2ย ลองตั้งให้ชื่อ tag ไม่ซ้ำกันดูครับ ถ้ายังไม่ได้ยังไง ติดต่อหลังไมค์ได้ครับ
@@โรงเรียนชุมชนชวนวิทยา-ฌ2ย ทดลองทำเเล้วทำได้อยู่นะคะ
ขอขอบคุณนะครับมีประโยชน์มาก
ขอสอบถามเพิ่มครับ
ส่วนตรงนี้ \template.docx ซึ่งผมเปลี่ยน
เป็นชื่อไฟล์เพื่อให้โค้ดหาไฟล์เจอ
แล้วก็สำเร็จเรียบร้อยดีครับ
แต่ผมอยากสอบถามเพิ่มเติมว่า
-มันสามารถเปลี่ยนใส่เป็นภาษาไทยได้ไหม
ผมลองเบื้องต้นแล้วไม่ได้
-มีวิธีอ้างอิงอื่นไหมครับ
เปลี่ยนได้ครับ แต่ต้องไปตั้ง region & country ของวินโดว์เราให้เป็น thailand ก่อน และต้องไปตั้งค่าภาษาใน VBA ให้เป็นภาษาไทยด้วยครับ
ขอบคุณมากนะครับ ขอบคุณจริงๆ