VB.NET Word文章(変更履歴付)をテキストに変換したい
誰か、情報くださいお願いします
補足ですが、VB6の環境ではできておりました
現在VB.NETに移行しながら勉強中です
すみませんがよろしくお願いします
確か記憶では
Wordでの文章をテキストに変換するときはRichTextBoxを使ったと思います。
後、TextBoxのときの保存や読み込みをする命令語が違いますから、
注意してください。
> > 補足ですが、VB6の環境ではできておりました
VB6の時は、どのようにして変換していたのでしょうか?
Wordをオートメーションで操作していた、という事ならば、
VB.NETでも、Wordを利用してみるとか。
> Wordでの文章をテキストに変換するときはRichTextBoxを使ったと思います。
使わないと思います。
RichTextBoxで読めるのは、Word文書(*.doc) ではなく、
テキスト(*.txt) と リッチテキスト(*.rtf) ですし。
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformsrichtextboxstreamtypeclasstopic.asp
マグさん Dentalさん ありがとうございます
以下参考になるかはわかりませんが、VB6で作成した
時のベースとなります
よろしくお願いします
'Microsoft word 9.0 Object Library を参照設定する
Private Sub Command1_Click(Index As Integer)
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim strTemplate As String
Set wdDoc = wdApp.Documents.Open(App.Path & "\TEST.doc")
'テキストファイルを作成
wdDoc.SaveAs App.Path & "\TEST.txt", wdFormatText
wdDoc.Close
Set wdDoc = Nothing
wdApp.Quit
Set wdApp = Nothing
MsgBox "ファイルを作成しました"
End Sub
さんたくんさん すみませんでした。
リッチテキスト(*.rtf)のことをWord文章(*.Doc)と
今まで、勘違いして覚えていたようです。
確認したら、気がつきました。
とりあえず、VB6のソースを変更してみました。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim wdApp As New Microsoft.Office.Interop.Word.Application
Dim wdDoc As Microsoft.Office.Interop.Word.Document
Dim strTemplate As String '←この変数って意味ないような気がする・・・
Dim ram As String
Dim ggggytugit As Integer
ram = System.Reflection.Assembly.GetExecutingAssembly().Location
ggggytugit = ram.LastIndexOf("\")
ram = ram.Substring(0, ggggytugit + 1)
wdDoc = wdApp.Documents.Open(ram & "\TEST.doc")
'テキストファイルを作成
'wdDoc.SaveAs(ram & "\TEST.txt", wdFormatText)
wdDoc.SaveAs(ram & "\TEST.txt") '←ここをなんとかすれば、できるかも?
wdDoc.Close()
wdDoc = Nothing
wdApp.Quit()
wdApp = Nothing
MessageBox.Show("ファイルを作成しました", "報告")
End Sub
できたら、完成したソースを教えてください。
もしかして、
wdDoc.SaveAs(ram & "\TEST.txt", wdFormatText)
の記述の
wdFormatTextって変数ですか?
>wdFormatTextって変数ですか?
WdSaveFormat クラスの定数です。ワードのヘルプで
SaveAs メソッドを調べれば分かることですが…。
[VB.NET]でのフルの名前空間は
Word.WdSaveFormat.wdFormatText
となります。…これも[VB.NET]のオブジェクト
ブラウザで検索すればすぐに引っかかります。
結局、さんたくんさんの[VB6]のコードはワードの
Object Library オブジェクトライブラリを参照する
事によってワードにテキストファイルを作成するように
命令してます。つまり[VB6]側では特別な処理をして
いません。[VB.NET]に移行してもこの手法は有効で、
コードもほぼそのまま利用できます。
[VB.NET]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim wAppFullPath As String = System.Reflection.Assembly.GetExecutingAssembly.Location
Dim wAppFolderPath As String = System.IO.Path.GetDirectoryName(wAppFullPath)
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim strTemplate As String
wdDoc = wdApp.Documents.Open(wAppFolderPath & "\TEST.doc")
'テキストファイルを作成
wdDoc.SaveAs(wAppFolderPath & "\TESTdoc.txt", Word.WdSaveFormat.wdFormatText)
wdDoc.Close()
wdDoc = Nothing
wdApp.Quit()
wdApp = Nothing
MsgBox("ファイルを作成しました")
End Sub
あ、こちらでの動作確認の際、使用したオブジェクト
ライブラリのバージョンは 10.0 です。
さんたくんさん
このソースを何に使うのでしょうか・・・?
doc形式の文章をtxt形式に変える意味ってあるのでしょうか?
>マグさん
そんな質問しないでよ…(^^;)
例えばボクは大量の仕様書(Excel ブックでしたが)を
『そろそろ使わなくなってきたから場所を取らない様に
テキストにして保存しておいて?』と言われた事は
あります。共有して使うためにサーバに置くことは多いと
思いますが、そういった場合、量が増えてくると結構な
メモリを使います。doc形式の文章をtxt形式に変える
需要は案外多いと思います。1つ2つならワードを開いて
保存すればいいだけですが、大量にとなるとツールが必要
でしょう?目的は人それぞれです。目的を叶えるための
代替案や改善案ならまだしも、自分の興味を満足するのみの
質問は控えて頂きたいと思います。質問者がそれにも回答を
付けなきゃいけなくなるでしょ?時間が余ってる人ばかり
ではないんです。余計な質問は控えるべきです。
どうしても知りたいなら別スレッドでも立ててください。
…まぁ、板違いな気もしますが(汗)
あなた自身、使う必要が無いならなんで
>できたら、完成したソースを教えてください。
なんて書き込みしたの?色々な事に挑戦する意思は買って
ますが、以前ボクは
>独学ですか?基本的な事は本を1冊最後まで読むなり、
>セミナーに通うなりして実力を付けないと身につきませんよ
といった事を書き込みしたと思います。なんか色々と手を
出しすぎな上に基本的なことを質問しすぎな気がします。
別に基本的な事を聞いてはいけないと言ってる訳ではありま
せん。貴方の『自分で調べる能力』の成長が少なく感じるという
ことです。それでもたまに、ああ、調べてるなあと感じる所は
あるんです(それがどっかの書き込みのコピーであってもです)。
たまにマグさんに対する不満の書き込みもあるようですが…、
あれはあれで子供染みてて…なんだかなぁ(^^;)…って感じですが、
(子供染みてる部分はボクもあるんでそんなに気になりませんがw)
ボクもマグさんに『回答する側に回るならもう少しレベルアップして
欲しい』と思ってます。今回の回答も調べ方さえ分かっていれば
十分な回答ができたと思います。ボクの回答で難しい部分はありま
したか?マグさんにも調べられるレベルでしょ?ちゃんと調べて
いただけませんか?それに質問するだけで回答しなくても回答は
付きますよ?。解答が付かない場合は難しい問題だったり、逆に
自分で調べるべき問題だったり…そんな場合が多いです。特に
マグさんの質問は画像関係が多く、ボクも得意ではありませんし、
経験者の少ない難しい問題も多いです。自分で切り開かないと
いけない分野かもしれません。結構、その分野の回答者が少ないので
個人的にすごく期待してるんです。あせって回答者に回る必要は
ありません。質問ばかりでも構いません。じっくり実力をつけて
頂けませんか?
分かりました。
ありがとうございました。
マグさん 特攻隊長まるるうさん
レスありがとうございましたそして、返信のほう遅くなりました
すみませんでした
特攻隊長まるるうさん 以前にもお世話になりました
早速試してみます
マグさん 特攻隊長まるるうさん ありがとうございました
ツイート | ![]() |