Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


199 / 308 ツリー ←次へ | 前へ→

【342】あるTableオブジェクトの直近の見出しを取得す... 日比野桜子 05/9/16(金) 0:49 質問[未読]
【346】Re:あるTableオブジェクトの直近の見出しを... H. C. Shinopy 05/9/17(土) 23:08 回答[未読]
【351】Re:あるTableオブジェクトの直近の見出しを... 日比野桜子 05/9/26(月) 19:00 質問[未読]
【352】Re:あるTableオブジェクトの直近の見出しを... H. C. Shinopy 05/9/26(月) 23:42 回答[未読]
【353】Re:あるTableオブジェクトの直近の見出しを... 日比野桜子 05/9/27(火) 20:46 お礼[未読]

【342】あるTableオブジェクトの直近の見出しを取...
質問  日比野桜子  - 05/9/16(金) 0:49 -

引用なし
パスワード
   Wordドキュメント内の表オブジェクトの内容を、Excelに出力するマクロを作成しています。
Tablesコレクションを順に処理する方法で実現させていますが、この際、カレントTableオブジェクトが属する段落の見出しを取得するにはどのようにすればよいでしょうか。

例)Table-1に注目している場合、"1.1.1 見出し3"という文字列を取得したい。

 1. 見出し1
  1.1 見出し2
  1.1.1 見出し3
   [ Table-1 ]
   [ Table-2 ]
  1.1.2 ....
   [ Table-3 ]
  1.2 ....

なにぶん超初心者なので五里霧中です。
お力添えいただければ幸いです。
なお、当方Word2000を使用しています。

【346】Re:あるTableオブジェクトの直近の見出しを...
回答  H. C. Shinopy  - 05/9/17(土) 23:08 -

引用なし
パスワード
   取り敢えず、回答させて頂きます。

誠に臭い手段ですが、
カーソルの移動によって[見出し3]の文字列を取得したら、
どうでしょうか?
表の中を処理した後で、カーソル移動で[見出し3]を取り込むのです。

Sub myTableAndHeading3()
 Dim myTable As Table
 '
 Rem 表ごとの処理
 For Each myTable In ActiveDocument.Tables
  Rem ここで、表の中の処理をしておく。
  '
  Rem 見出しの処理
  myTable.Select ' 表を選択状態にする。
  Selection.MoveUp Unit:=wdLine, Count:=1 ' カーソルを1行上に移動する。
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend ' 移動先の行を選択する。
  '
  If Selection.Range.Style = "見出し 3" Then
   Rem 見出し3の処理
   MsgBox "見出し 3:" & Selection.Range.Text ' 見出し3の文字列を表示する。
  Else
   MsgBox "Untitled!"
  End If
 Next ' myTable
 '
 Rem 後処理
 Selection.HomeKey Unit:=wdStory ' カーソルを文書の先頭に移動する。
End Sub ' myTableAndHeading3

【351】Re:あるTableオブジェクトの直近の見出しを...
質問  日比野桜子  - 05/9/26(月) 19:00 -

引用なし
パスワード
   H. C. Shinopyさん

翌日に早速ご回答戴いたのにお礼が遅れて失礼しました。
提示いただいたコード中、直前の行が「見出し3」であるか
どうかチェックする部分は、該当しない場合はループさせて
1行ずつ巡っていく感じになるんですかね。
現在抱えてる案件は確かに「見出し3」以下にしか表を配置
しないドキュメントですので、これでなんとか解決しそうです。
ありがとうございました。

ついでなのでもう1つ教えていただきたいのですが、
Select.Range.Text では見出し文字(「1.1.3. 見出しタイトル」の「1.1.3.」)
が取得できないようなのですが、これも含めて取得する方法はありますか?

【352】Re:あるTableオブジェクトの直近の見出しを...
回答  H. C. Shinopy  - 05/9/26(月) 23:42 -

引用なし
パスワード
   見出し文字のことを忘れておりました。
箇条書きの値に対応する文字列も取得する場合は、
次の通りです。

見出し3の所にカーソルがある状態で、実行してみて下さい。

MsgBox "[" & Selection.Range.ListFormat.ListString & "] " & Selection.Range.Text

【353】Re:あるTableオブジェクトの直近の見出しを...
お礼  日比野桜子  - 05/9/27(火) 20:46 -

引用なし
パスワード
   H. C. Shinopyさん

ご丁寧にいろいろ教えていただきありがとうございました^^
おかげさまで万事うまくいきました♪

199 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207138
(SS)C-BOARD v3.8 is Free