YuTaKoメモ

まずは欧州や日本の法律など、日々の覚書としていきます

目次
欧州の法令 日本の法令
(道路)
保安基準 VBA

Word、VBA:表を読み取る関数

VBA での Word ファイル 読み取り

開いている *****.doc の一つ目の表から
セルの内容を一つずつ取得し、二次元配列で返す関数です。


以下、ほぼ元のままで記述


  1. Function JL0041()
  2.   ' 【【 開いているファイルから表を読み取り 】】
  3. 000:
  4.   On Error GoTo 999
  5. 010:
  6.   ' 変数宣言
  7.   Dim PatternTable As Table
  8.   Dim str As String
  9.   Dim i_row As Integer
  10.   Dim i_column As Integer
  11.   Dim rownum As Integer
  12.   Dim columnnun As Integer
  13.   Dim tempTable() As String
  14. 020:
  15. ' 開いているファイルをアクティブ
  16.   Documents(" ****.doc ") .Activate
  17. 030:
  18.   ' ファイルの中の一つ目の表の行列数を数えて
  19. ' 保存用配列を再宣言
  20.   Set PatternTable = ActiveDocument .Tables( 1 )
  21.   rownum = PatternTable.Rows .Count
  22.   columnnum = PatternTable.Columns .Count
  23.   ReDim tempTable( 1 To rownum , 1 To columnnum ) As String
  24. 040:
  25.   ' 表の各セルを順番に読み取って配列に保存
  26.   For i_row = 1 To rownum
  27.     For i_column = 1 To columnnum
  28.       str = PatternTable.Cell( i_row , i_column ).Range.text
  29.       str = Left( str , Len( str ) - 2 )
  30.       tempTable( i_row , i_column ) = str
  31.     Next
  32.     DoEvents     ' キー入力を有効に
  33.     inserttime ( 0.1 )     ' 別途作成のタイマー関数でちょっと時間あける
  34.   Next
  35. 900:
  36.   ' 配列を関数として代入
  37.   JL0041 =  tempTable()
  38.   Exit Function
  39. 999:
  40.   ' エラー終了
  41.   MsgBox ("エラー終了しました")
  42. End