การทำ Mail Merge ใส่รูปภาพ โดยใช้ข้อมูลจาก Google Forms

ในปัจจุบันนี้ ส่วนใหญ่เรามักใช้ Google forms สำหรับลงทะเบียน และบางครั้งเราจำเป็นจะต้องให้ผู้ลงทะเบียนอัพโหลดรูปภาพมาด้วย และเมื่อนำข้อมูลที่ได้จาก Google forms มาทำ Mail merge มักเจอปัญหาไม่สามารถนำรูปเข้ามาใน Mail merge ได้ ในบทความนี้มีวิธีแก้

ก่อนอื่นต้องบอกก่อนเลยว่า บทความนี้เป็นปัญหาที่เกิดขึ้นกับผู้เขียนเอง เนื่องจากมีงานที่ต้องให้มีคนลงทะเบียนใน Google forms และผู้ลงทะเบียนต้องอัพโหลดรูปผู้ลงทะเบียนมาด้วย เพื่อใช้ตรวจสอบหน้าผู้ลงทะเบียน และนำไปใช้อย่างอื่นด้วย

ปกติถ้ามีแต่ข้อมูลที่เป็นข้อความก็ไม่ใช่เรื่องยากอะไร แค่ดาวน์โหลดไฟล์ csv จาก Google forms แล้วทำเป็น excel ก็นำมาใช้ทำ Mail merge ใน Microsoft Word ได้ง่าย ๆ

แต่ด้วยจำเป็นต้องใส่รูปด้วย ทำให้มีความยากเกิดขึ้น ทำให้ผู้เขียนต้องค้นคว้าหาข้อมูลใน internet จากหลายที่ และไม่ได้คำตอบที่ตรง ๆ แบบที่ต้องการทั้งหมด ดังนั้นจึงตั้งใจเขียนบทความนี้ขึ้นมา เพื่อให้คนที่เจอปัญหานี้ ได้คำตอบในที่เดียว และหากใส่ Reference ไม่ครบถ้วนต้องขออภัยมา ณ ที่นี้ด้วย

เอาแบบละเอียดยิบเลยพร้อมตัวอย่าง

สร้าง Google form

เริ่มต้น สมมติว่าเราสร้างฟอร์มลงทะเบียนมีฟอร์มให้กรอกข้อมูล คำนำหน้าชื่อ, ชื่อ-สกุล และรูปภาพของผู้ลงทะเบียน โดยสร้างจาก Google forms ดังรูปที่ 1

รูปที่ 1

ลองกรอกข้อมูลและอัพโหลดรูปในฟอร์ม 3 ข้อมูล ดังรูปที่ 2

รูปที่ 2

เมื่อดูใน Google drive ก็จะพบโฟวเดอร์ รูปถ่าย (File responses) ดังรูปที่ 3

รูปที่ 3

ดาวนโหลดไฟล์ข้อมูล csv จาก Google form

ขั้นตอนต่อมา ไปที่หน้าแก้ไขฟอร์ม เพื่อดาวน์โหลดข้อมูลทั้งหมดของผู้ลงทะเบียนออกมาเป็นไฟล์ csv โดยไปคลิ๊กที่จุด 3 จุด ดังรูปที่ 4 แล้วเลือก Download responses (.csv) ดังรูปที่ 5 แล้วบันทึกไฟล์

รูปที่ 4

รูปที่ 5

โดยไฟล์ที่บันทึกได้เป็นไฟล์ zip ชื่อ ลงทะเบียน.csv.zip ให้เราทำการแตกไฟล์ออกมา จะได้ไฟล์ ลงทะเบียน.csv ดังรูปที่ 6

รูปที่ 6

แปลงภาษาต่างด้าวให้เป็นภาษาไทย

เมื่อเราดับเบิลคลิ๊กที่ไฟล์ .csv จะเปิดโปรแกรม Excel ขึ้นมา หากเครื่องใดมีปัญหาเรื่อง Font ภาษาไทย จะเปิดออกมาแล้วเป็นดังรูปที่ 7 เป็นภาษาต่างด้าว ไม่ต้องตกใจไป

รูปที่ 7

ให้ปิดโปรแกรม Excel ไปก่อน จากนั้นคลิ๊กขวาที่ไฟล์ ลงทะเบียน.csv เลือก Open with > Notepad จะได้ดังรูปที่ 8 พูดง่าย ๆ คือใช้ Notepad เปิดไฟล์นั่นเอง จะเห็นว่าอ่านเป็นภาษาไทยได้

รูปที่ 8

จากนั้นเลือกเมนู File > Save As… ในโปรแกรม Notepad แล้วเลือก Encoding เป็น UTF-8 with BOM ดังรูปที่ 9

รูปที่ 9

เมื่อลองดับเบิลคลิ๊กเปิดไฟล์ ลงทะเบียน.csv เปิดด้วย Excel อีกครั้งก็จะพบว่าเป็นภาษาไทยปกติ ดังรูปที่ 10

รูปที่ 10

จากนั้นให้เลือกเมนูใน Excel ไปที่ File > Save As แล้วเลือกประเภทไฟล์เป็น Excel Workbook (*.xlsx) ดังรูปที่ 11 พูดง่าย ๆ คือบันทึกไฟล์เป็น Excel นั่นเอง

รูปที่ 11

ถามว่าจะทำ Mail merge จาก .csv ได้ไหม คำตอบคือได้ แต่อาจยุ่งยากนิดหน่อย สู้บันทึกเป็นไฟล์ Excel เลยดีกว่า สะดวกกว่า

ทีนี้มาถึงขั้นตอนของการทำ Mail merge ด้วย Microsoft Word

เริ่มต้นสร้าง Mail merge ด้วยการสร้างไฟล์ Word โดยบันทึกไฟล์ที่เดียวกับไฟล์ ลงทะเบียน.xlsx ดังรูปที่ 12

รูปที่ 12

เชื่อมข้อมูลทำ Mail merge

ขั้นตอนต่อไปเป็นการเชื่อมต่อแหล่งข้อมูล เพื่อนำมาทำ Mail merge โดยเปิดไฟล์ ลงทะเบียน.doc ขึ้นมา แล้วไปที่เมนู Mailings แล้วเลือกเมนู Select Recipients ดังรูปที่ 13 แล้วเลือกเมนู Use an Existing List แล้วเลือกไฟล์ ลงทะเบียน.xlsx ดังรูปที่ 14

รูปที่ 13

รูปที่ 14

จากนั้นจะมีหน้าต่างแสดงขึ้นมา ให้ดูว่าได้เลือกเช็คถูกตรง First row of data contains column headers แล้วคลิ๊กปุ่ม OK ดังรูปที่ 15

รูปที่ 15

จากนั้นหากเราต้องการใส่ข้อมูลจาก Field ใด ก็สามารถเลือกที่เมนู Insert Merge Field แล้วเลือก Field ข้อมูลที่ต้องการใส่ได้เลย ดังรูปที่ 16 ซึ่งตรงนี้ไม่ใช่เรื่องยาก หลายคนทำเป็นปกติอยู่แล้ว สิ่งที่อาจจะยากสำหรับคนที่ไม่เคย นั่นก็คือการใส่รูปใน Mail merge นั่นเอง

รูปที่ 16

ใส่รูปใน Mail merge จากข้อมูลที่เป็น URL

มาถึงขั้นตอนนี้ เป็นการใส่รูปโดยใช้ URL ใน Mail merge แบบธรรมดาก่อน (ไม่ได้ใช้ข้อมูลจาก Google forms)

ไปที่แถบ Insert แล้วคลิ๊กเมนู Quick Parts แล้วเลือก Field ดังรูปที่ 17

รูปที่ 17

จะมีหน้าต่าง Field แสดงขึ้นมา
โดยในช่อง Field names ให้เลือก IncludePicture
Field properties ให้ใส่ filename ลงไปเพื่อเป็นชื่อฟิลด์
แล้วกดปุ่ม OK ดังรูปที่ 18

รูปที่ 18

ตอนนี้เมื่อกดปุ่ม OK แล้ว จะยังไม่เห็นรูป จะเห็นเป็นดังรูปที่ 19 ซึ่งเรายังไม่ได้เชื่อมกับ URL ใด ๆ เราแค่บอกว่าเชื่อมกับ Field ชื่อ filename ตามที่เรากรอกลงไป ซึ่งยังไม่มีฟิลด์นี้จริง

รูปที่ 19

ขั้นตอนนี้ให้เลือกที่รูป แล้วกดปุ่ม Alt+F9 หรือบางเครื่องเช่น Notebook อาจจะต้องกดปุ่ม Shift+F9 ลองดูไม่แบบใดก็แบบหนึ่ง เพื่อให้แสดงเป็น Field code ดังรูปที่ 20

รูปที่ 20

จากนั้นให้เลือกไฮไลท์ที่คำว่า filename แล้วเลือกแถบ Mailings แล้วเลือก Insert Merge Field แล้วเลือก รูปถ่าย ดังรูปที่ 21

รูปที่ 21

เมื่อกดเชื่อมรูปกับ URL แล้วเราจะได้ดังรูปที่ 22 ซึ่งยังไม่มีรูปมาแสดงผล ปัญหาเป็นเพราะ URL ในไฟล์ Excel มันเข้าไม่ถึงรูปภาพได้จริง ซึ่งเราต้องไปปรับแก้ก่อน แต่ถึงขั้นตอนนี้ เราสามารถปรับขนาดของรูปหรือจัด Format ให้เรียบร้อยได้ก่อนเลย

รูปที่ 22

ไฮไลท์อยู่ตรงนี้

มาถึงขั้นตอนนี้ผู้เขียนหาวิธีอยู่นานว่าจะทำอย่างไรให้ URL ในไฟล์ Excel ที่ได้มาจากฟอร์มนั้นสามารถเชื่อมโยงไปยังไฟล์รูปภาพได้เลย

สิ่งแรกที่คิดก็คือเรื่องการเข้าถึง Privacy เนื่องจากฟอร์มที่สร้างขึ้นหรือไฟล์ที่อัพโหลดใน Drive นั้นเข้าถึงได้เฉพาะคนที่สร้างเท่านั้น ดังนั้นต้องไปปรับให้เป็น Public ก่อน

ดังนั้นให้ไปที่ Google drive ของเรา แล้วไปที่โฟวเดอร์ที่อัพโหลดรูปไว้ โดยในตัวอย่างนี้จะเป็นโฟวเดอร์ชื่อ รูปถ่าย (File responses) ให้เราเลือกที่โฟวเดอร์ แล้วกดปุ่มสัญลักษณ์ลูกโซ่ที่อยู่มุมขวา แล้วเลือก Get link เป็น “Anyone with the link” แล้วกด Done ดังรูปที่ 23

รูปที่ 23

ถ้าอยากรู้ว่าเข้าถึงรูปที่อัพโหลดผ่าน URL ได้หรือยัง ให้ลองไปที่ไฟล์ Excel แล้วคัดลอก URL ตรงช่องไฟล์ที่อัพโหลด แล้วนำไปวางในช่องใส่ URL ของเว็บเบราเซอร์ ถ้าเปิดรูปแสดงว่าเราสามารถเข้าถึงผ่าน URL ได้แล้ว

มาถึงขั้นตอนนี้ก็คิดว่าใน Mail merge จะแสดงรูปภาพตาม URL ได้แล้ว

แต่ยังไม่ได้

ตรงนี้แหละที่อยากจะเผยแพร่ในสิ่งที่ไปหามา นั่นคือ เราใช้ URL เดิมไม่ได้

เดิม URL จาก Google forms ที่ได้มาจะเป็น Format ดังนี้

https://drive.google.com/u/0/open?usp=forms_web&id=ไอดีรูป

แต่ถ้าจะให้เข้าถึงไฟล์รูปผ่าน URL ได้จริง ๆ ต้องให้อยู่ใน Format นี้

https://drive.google.com/uc?export=view&id=ไอดีรูป

ดังนั้นต้องไปเปลี่ยนค่าในไฟล์ Excel ก่อน เพื่อให้ URL อยู่ในรูปแบบที่สามารถนำไปใช้ได้

โดยเปิดไฟล์ ลงทะเบียน.xlsx ขึ้นมา (ต้องปิดไฟล์ word ก่อน)

กดปุ่ม Ctrl+H เพื่อ Replace ข้อความ
แล้วใส่ช่อง Find what เป็น https://drive.google.com/u/0/open?usp=forms_web&id=
ใส่ช่อง Replace with เป็น https://drive.google.com/uc?export=view&id=
แล้วกดปุ่ม Replace All เพื่อแทนที่ทั้งหมด
แล้วกดปุ่ม Close ดังรูปที่ 24 แล้วบันทึกไฟล์ แล้วปิดไฟล์ Excel ไป

รูปที่ 24

จากนั้นเปิดไฟล์ ลงทะเบียน.docx ขึ้นมาอีกครั้ง ถ้ามีหน้าจอเตือนดังรูปที่ 25 ให้คลิ๊กปุ่ม Yes

รูปที่ 25

ถ้ารูปยังไม่แสดงอีก ยังไม่ต้องตกใจ

ให้ไปที่แถบ Mailings แล้วคลิ๊กที่ปุ่ม Finish & Merge แล้วเลือกเมนู Edit Individual Documents… ดังรูปที่ 26

รูปที่ 26

จากนั้นจะมีหน้าต่างถามว่าจะ Merge เอกสารทั้งหมดหรือเลือกบาง Record ก็สามารถทำได้ แล้วคลิ๊กปุ่ม OK ดังรูปที่ 27

รูปที่ 27

จากนั้นจะเปิดหน้าเอกสาร Word มาอีกหนึ่งหน้าต่างโดยมีข้อมูลจำนวนหน้าเท่ากับจำนวน record ในไฟล์ Excel แต่รูปก็ยังไม่ขึ้นอีก ดังรูปที่ 28 ไม่ต้องตกใจ

รูปที่ 28

Refresh ให้รูปจาก URL แสดงผล

ให้กดปุ่ม Ctrl+A เพื่อเลือกทั้งหมด แล้วกดปุ่ม F9 (หรือ FN+F9 ถ้าเป็น Notebook) เพื่อรีเฟรช เป็นอันเรียบร้อย ถ้าไม่มีอะไรผิดพลาดก็จะแสดงรูปภาพได้แล้ว ดังรูปที่ 29

รูปที่ 29

ที่นี้เราก็จะได้ Mail merge ที่มีรูปจาก URL ที่ได้จาก Google forms เป็นที่เรียบร้อยแล้ว ส่วนใครจะนำไปประยุกต์อย่างไรก็ลองปรับได้เลย

ปล. ถ้าเห็นว่าบทความนี้มีประโยชน์ ฝากกด Like กด Share ให้ด้วยนะครับ

ขอบคุณครับ

Aj.Montri

Reference:
https://www.datanumen.com/blogs/2-ways-batch-insert-multiple-pictures-word-document-via-mail-merge/