vbscript : word to text
กระทู้เก่าบอร์ด อ.Yeadram

 2,685   1
URL.หัวข้อ / URL
vbscript : word to text

เมื่อวานนี้ไปได้ข้อมูล มา 1 โฟลเดอร์ เป็นข้อมูลคำอธิบายเชิงเทคนิค ขั้นตอน วิธีการอะไรบางอย่าง (บอกไม่ได้)
เขาแยกเป็นข้อๆ โดยแต่ละข้อ เก็บเป็น 1 ไฟล์เวิร์ด (.doc เปิดด้วย Microsoft word) ประมาณ 20 - 30 ไฟล์ ก็คือ ประมาณ 20-30 ข้อนั่นแหละครับ

ผมลองสุ่มๆ เปิดดูแต่ละไฟล์ ก็เห็นมันเป็นแค่ข้อความธรรมดา ไม่มีการแนบรูป หรือตารางอะไรเลย ก็สงสัยแล้วก็แอบด่าคนทำในใจว่า ทำไมคุณไม่ทำเป็นเป็นไฟล์ text วะ (.txt เปิดด้วย notepad) เพราะมันใช้เวลาและทรัพยากรน้อยกว่ากันเยอะเลยในการเปิดอ่าน แต่ก็ได้แค่ด่าในใจ ทำอะไรไม่ได้แล้วนี่

ก็เลยหาวิธีจะทำไงให้ทั้ง 30 ไฟล์นี้แปลงเป็น .txt ด้วยวิธีง่ายๆ บ้าง
จากการค้น google และทดลองเขียนครับ ก็ได้ สคริปต์นี้มา 1 ตัว ก็เอามาโพสต์ฝากไว้ในนี้ครับ เผื่อต้นฉบับในเครื่องผมหาย ผมจะได้มาคัดลอกเอาจากที่นี่ได้อีก และเผื่อเป็นประโยชน์กับท่านอื่นๆ ด้วยครับ

Dim WshShell
Dim Wd 'As New Word.Application
Dim Doc 'As New Document
Dim Fso 'As New FileSystemObject
Dim Fo 'As Folder
Dim Fi 'As File
Dim Pth 'As String

Set Wd = CreateObject("Word.Application")
Set Fso = CreateObject("scripting.filesystemobject")
Set WshShell = CreateObject("WScript.Shell")
Pth = Replace(wscript.scriptfullname, wscript.scriptname, "")
Set Fo = Fso.GetFolder(Pth)
Pth = Pth & "\"

For Each Fi In Fo.Files
    If LCase(Right(Fi.Name, 4)) = ".doc" Then
            Set Doc = Wd.Documents.Open(Pth & Fi.Name)
               Doc.SaveAs FileName:=Pth & Left(Fi.Name, Len(Fi.Name) - 4), FileFormat:=wdFormatText
            Doc.Close
            Set Doc = Nothing
        Wd.Quit SaveChanges:=wdDoNotSaveChanges
        Set Wd = Nothing
        Kill Pth & Fi.Name
    End If
Next
Set Fo = Nothing
Set Fso = Nothing

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R11013
Set wshshell = Nothing
ขาดไป 1 บรรทัดครับ
ไม่อยากแก้ไข เพราะรูปแบบมันจะอ่านยากทันที่ ที่มีการแก้ไขโพสต์
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2872s