การอ่าน Microsoft Office Word จากตำแหน่งใน เอกสาร
1. Create New Project ตามนี้
2. Create Form1 => Add Reference... ดังนี้
3. เลือก Interop.Microsoft.office Interop.Word ดังนี้
4. เตรียมเอกสารใ้ห้พร้อม ตัวอย่างได้สร้างไว้ที่ D:\Test_Word.docx
5. เขียน Code ตามนี้
Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop
Public Class Form1
Private WdApp As New Application
Private WdDoc As Word.Document
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim dt_Word As DataTable
Dim pathWord As String = "D:\Test_Word.docx"
Dim word As String
WdDoc = WdApp.Documents.Open(pathWord)
'WdApp.Visible = False
Threading.Thread.Sleep(1000)
word = GetWord(pathWord) 'Send file name process in getword
' Close process WinWord.exe
WdDoc.Close()
WdApp.Quit()
TextBox1.Text = word
MsgBox(word)
End Sub
Function GetWord(ByVal pathWord As String) As String
Dim allPage As Integer
Dim startPage As Integer
startPage = WdApp.Selection.Range.Start
allPage = WdApp.Selection.Range.StoryLength
Dim word As String
word = Character(startPage, allPage)
Return word
End Function
Function Character(ByVal s As Integer, ByVal e As Integer) As String
Dim _word As String = ""
Dim range As Word.Range
If s < e And s > -1 Then
range = WdDoc.Range(Start:=s, End:=e)
_word = range.Text
End If
Return _word
End Function
'Find location Word
Function findWord_location() As Integer
'กรณีต้องการหาตำแหน่ง ของตัวอักษร แทน startPage ก้อได้
' ตัวอักขระพิเศษของ MS Word ดูได้จาก
http://support.microsoft.com/kb/214204
' ถ้ายังสงสัยลองกด Ctrl+F ใน MS Word Find what: ^t จะเจอ แต่ต้องมีเอกสารที่มี TAB ด้วยน่ะไม่งั้นไม่เจอน่ะ 555+
' ^t = TAB
' ^p = Enter
WdDoc.Select()
WdApp.Selection.Find.ClearFormatting()
Dim wh As String = "^t" & "ข้อที่ 1" 'ต้องการหาคำที่ประกอบด้วย 1TAB ข้อที่ 1
'Dim wh As String = "^t^t" & "ข้อที่ 2" 'ต้องการหาคำที่ประกอบด้วย 2TAB ข้อที่ 2
With WdApp
With .Selection.Find
.Text = wh
.Replacement.Text = ""
.Forward = True
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
End With
Dim location As Integer
If WdApp.Selection.Find.Execute = True Then
location = WdApp.Selection.Range.Start
End If
Return location
End Function
End Class
6. เมื่อ Run Program(F5) จะอ่านได้ดังนี้
7. ศึกษาเพิ่มเติมเรื่อง อักขระพิเศษใน MS Word ตาม Link นี้ค่ะ
http://support.microsoft.com/kb/214204