Sub ExtractText()
Dim a1 As Object, a2 As Object, a3 As String, a4 As Worksheet, a5 As Long
Dim a6 As String, a7 As Variant, a8 As Variant, a9 As Variant, a10 As Variant
Dim a11 As Boolean, a12 As Integer
With Application.FileDialog(3)
.Title = Chr(83) & Chr(101) & Chr(108) & Chr(101) & Chr(99) & Chr(116) & Chr(32) & _
Chr(70) & Chr(105) & Chr(108) & Chr(101)
.Filters.Clear
.Filters.Add Chr(87) & Chr(111) & Chr(114) & Chr(100) & Chr(32) & _
Chr(68) & Chr(111) & Chr(99) & Chr(117) & Chr(109) & Chr(101) & _
Chr(110) & Chr(116) & Chr(115), "*.doc; *.docx"
If .Show = -1 Then
a6 = .SelectedItems(1)
Else
MsgBox Chr(78) & Chr(111) & Chr(32) & Chr(70) & Chr(105) & Chr(108) & Chr(101) & _
Chr(32) & Chr(83) & Chr(101) & Chr(108) & Chr(101) & Chr(99) & _
Chr(116) & Chr(101) & Chr(100), 48
Exit Sub
End If
End With
On Error Resume Next
Set a1 = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set a1 = CreateObject("Word.Application")
a11 = True
End If
Err.Clear
On Error GoTo 0
Set a2 = a1.Documents.Open(a6, ReadOnly:=True)
a3 = a2.Content.text
a2.Close False
Set a2 = Nothing
If a11 Then a1.Quit
Set a1 = Nothing
a3 = Replace(a3, Chr(9), Chr(32))
a3 = Replace(a3, Chr(160), Chr(32))
a3 = Replace(a3, Chr(10), Chr(32))
a7 = A1B2C3(a3, "Name:")
a8 = A1B2C3(a3, "Age:")
a9 = A1B2C3(a3, "Birth:")
a10 = A1B2C3(a3, "Address:")
Set a4 = ThisWorkbook.Sheets(Chr(70) & Chr(101) & Chr(117) & Chr(105) & Chr(108) & Chr(50))
a5 = a4.Cells(a4.Rows.count, "A").End(-4162).Row + 1
Dim maxE As Integer
maxE = Application.WorksheetFunction.Max(UBound(a7), UBound(a8), UBound(a9), UBound(a10))
For a12 = 0 To maxE
a4.Cells(a5 + a12, 1).Value = IIf(a12 <= UBound(a7), a7(a12), "N/A")
a4.Cells(a5 + a12, 2).Value = IIf(a12 <= UBound(a8), a8(a12), "N/A")
a4.Cells(a5 + a12, 3).Value = IIf(a12 <= UBound(a9), a9(a12), "N/A")
a4.Cells(a5 + a12, 4).Value = IIf(a12 <= UBound(a10), a10(a12), "N/A")
Next a12
MsgBox Chr(83) & Chr(117) & Chr(99) & Chr(99) & Chr(101) & Chr(115) & Chr(115), 64
End Sub
Function A1B2C3(ByVal x1 As String, ByVal x2 As String) As Variant
Dim v1() As String, v2 As Integer, v3 As Integer, v4 As String, v5 As Integer
v5 = 0
v2 = 1
Do
v2 = InStr(v2, x1, x2, 1)
If v2 > 0 Then
v2 = v2 + Len(x2)
v3 = InStr(v2, x1, Chr(13))
If v3 = 0 Then v3 = Len(x1) + 1
v4 = Trim(Mid(x1, v2, v3 - v2))
ReDim Preserve v1(v5)
v1(v5) = v4
v5 = v5 + 1
v2 = v3
End If
Loop While v2 > 0
A1B2C3 = v1
End Function