จากบทความในครั้งก่อน เรื่อง อ่าน Excel ด้วย Power Automate Desktop ได้สอนคำสั่งต่างๆ ใน Excel ไปแล้ว ได้แก่
- Launch Excel
- Get first free column/row from Excel worksheet
- Read from Excel worksheet
- Close Excel
โดยในบทความนั้น เราให้โรบอทเอาค่าที่อ่านได้จาก Excel range เก็บในตัวแปรชื่อ ExcelData แล้วใช้คำสั่ง Write text to file เพื่อแสดงค่าที่อ่านได้ในโปรแกรม text editor (Notepad)
ผลลัพธ์ที่ได้จะมีสัญลักษณ์ comma(,) คั่นระหว่างค่าในบรรทัดเดียวกัน และขึ้นบรรทัดใหม่สำหรับค่าที่อยู่บรรทัดถัดไป

ในบทความนี้จะสอนการใช้งานคำสั่ง For each เพื่ออ่านค่าทีละบรรทัดในคอลัมน์ที่เราสนใจ โดยจะให้อ่านค่าในคอลัมน์ “Name” ไปทีละค่า
Flow จากครั้งที่แล้ว
ครั้งก่อนเราใช้ Write text to file เพื่อให้เห็นเรื่องการตั้งค่า first line of range contains column names แต่ครั้งนี้เราไม่ได้ใช้แล้วจะ disable action ไว้หรือ delete ก็ได้

For each
ลาก For each มาใส่ที่ workspace ถัดจาก Read from Excel worksheet
parameter “Value to iterate” ให้ใส่ตัวแปรที่ต้องการทำซ้ำ สามารถใส่ตัวแปรที่เป็น list, data row หรือ data table ก็ได้ ในที่นี้จะให้ทำซ้ำในตัวแปร ExcelData ซึ่งเป็นตัวแปรประเภท data table แล้วกด Save

จะได้โฟลว์ตามรูปด้านล่าง (ลบคำสั่ง Write text to file ออกไปแล้ว)

Display Message
ลากคำสั่ง Display message มาอยู่ระหว่าง For each และ End
parameter “Message box title” จะเป็น title bar ของกล่องข้อความที่แสดงขึ้นมาตอนที่รันโรบอท สามารถใส่เป็นข้อความหรือตัวแปรก็ได้
ในที่นี้จะใส่ข้อความว่า For each in “Name” column
parameter “Message to display” จะเป็น body ของกล่องข้อความที่แสดงขึ้นมาตอนที่รันโรบอท สามารถใส่เป็นข้อความหรือตัวแปรก็ได้
ตอนที่เราใช้คำสั่ง For each วนค่าใน ExcelData เก็บใน CurrentItem ตัวแปร CurrentItem จะมี data type เป็น data row อ่านรายละเอียดเพิ่มที่นี่
การดึง item ใน Data row สามารถทำได้ 2 แบบ คือ
- บอก index column %VariableName[ItemNumber]%
- บอกชื่อ column ใน data table %VariableName[‘ColumnName’]%
ในที่นี้ถ้าต้องการอ่านค่าใน Column “Name” ซึ่งเป็นคอลัมน์แรก (Column index = 0) จะใส่ตัวแปรเป็น %CurrentItem[‘Name’]% หรือ %CurrentItem[0]% ก็ได้

Complete Flow
กด Save แล้วกดรัน

Example of Result
จะได้กล่องข้อความที่มี Title และ Body ตามที่เราใส่ข้อความและตัวแปรไว้


การนำไปใช้งาน
จากบทความนี้เพ็ญใช้คำสั่ง Display Message เพื่อแสดงค่าที่อยู่ในแต่ละ Excel cell ออกมาให้เห็นว่าโรบอททำงานยังไง เวลานำไปใช้จริงก็แค่เปลี่ยนจากคำสั่ง Dispaly Message เป็นคำสั่งที่เราต้องการ เช่น
- ต้องการให้พิมพ์ค่าใน window application ก็ใช้คำสั่ง Populate text field in window
- ต้องการให้พิมพ์ค่าในเว็บไซต์ ก็ใช้คำสั่ง Populate text field on web page
- ต้องการเอาค่าไปใช้เป็น subject mail Outlook ก็นำไปใส่ที่ parameter “Subject” ใน Send email message through Outlook
- etc.
สำหรับใครที่อยากดูโค้ด Power Automate Desktop ของบทความนี้ สามารถเข้าไป copy code ที่ github แล้วนำไปวางที่ Workspace ของ Power Automate Desktop ได้เลย แต่จะต้องไปปรับแก้เองนิดนึงที่ display message นะ (มีคำใบ้ในโค้ดและสอนไปแล้วในบทความนี้❤️🔥)

ส่วนใครที่ยังไม่มีไฟล์ Excel ก็สามารถดาวน์โหลดได้ที่นี่
หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ที่เพิ่งเริ่มศึกษา Power Automate Desktop ถ้าหากมีข้อสงสัยตรงไหนเกี่ยวกับบทความนี้ก็สามารถ comment ถามเข้ามาได้เลย
อย่าลืมกด like, share, subscribe สำหรับบทความดีๆ ต่อจากนี้ (กดปุ่ม subscribe แล้วจะได้ mail confirm subscription ให้ยืนยันอีกครั้งด้วยนะคะ)
จนกว่าจะได้พบกันอีกครั้ง Happy Automating!! 😁
Video


Leave a comment