[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:385) MS WordのVBA(適用されたスタイル付きでテキスト書き出し)



スタイル名+タブ+段落テキストというテキストをはき出させるだけなんだけど、
クロスプラットフォームの実現のため
どうしてもVBAでというご要望があったので、しぶしぶ(笑)書きました。
ほんとうにこれでいいのか、ぜんぜん分からないんだけど<VBAに詳しい方、添削してください。
とりあえず動いてます。
#VBAのsaveダイアログってアプリ依存なのねん。ちとびっくり。

Sub style_and_text()
'スタイル名+タブ+段落テキストというテキストをはき出します。
'(c)2003.02.17  www.seuzo.jp

'最後にはき出すテキスト65535byteまで
Dim tmp_str As String
'すべての段落数
cunt_para = ActiveDocument.Paragraphs.Count
'1行づつまわして
For i = 1 To cunt_para
Set rngPara = ActiveDocument.Paragraphs(i).Range
With rngPara
   tmp_str = tmp_str & .ParagraphFormat.Style & Chr(9) & .Text
End With
Next

'ファイルを書き出し、保存
With Dialogs(wdDialogFileSaveAs)
    f = .Display
    If f = -1 Then
    my_path = .Name
    End If
  End With
Open my_path For Output As #1
Print #1, tmp_str
Close #1
MsgBox "書き出しが終了しました。"

End Sub