Word、VBA:表を読み取る関数
VBA での Word ファイル 読み取り
開いている *****.doc の一つ目の表から
セルの内容を一つずつ取得し、二次元配列で返す関数です。
以下、ほぼ元のままで記述
- Function JL0041()
- ' 【【 開いているファイルから表を読み取り 】】
- 000:
- On Error GoTo 999
- 010:
- ' 変数宣言
- Dim PatternTable As Table
- Dim str As String
- Dim i_row As Integer
- Dim i_column As Integer
- Dim rownum As Integer
- Dim columnnun As Integer
- Dim tempTable() As String
- 020:
- ' 開いているファイルをアクティブ
- Documents(" ****.doc ") .Activate
- 030:
- ' ファイルの中の一つ目の表の行列数を数えて
- ' 保存用配列を再宣言
- Set PatternTable = ActiveDocument .Tables( 1 )
- rownum = PatternTable.Rows .Count
- columnnum = PatternTable.Columns .Count
- ReDim tempTable( 1 To rownum , 1 To columnnum ) As String
- 040:
- ' 表の各セルを順番に読み取って配列に保存
- For i_row = 1 To rownum
- For i_column = 1 To columnnum
- str = PatternTable.Cell( i_row , i_column ).Range.text
- str = Left( str , Len( str ) - 2 )
- tempTable( i_row , i_column ) = str
- Next
- DoEvents ' キー入力を有効に
- inserttime ( 0.1 ) ' 別途作成のタイマー関数でちょっと時間あける
- Next
- 900:
- ' 配列を関数として代入
- JL0041 = tempTable()
- Exit Function
- 999:
- ' エラー終了
- MsgBox ("エラー終了しました")
- End