Masaki Suketa wrote: > 助田です。 > > In message "[ruby-list:28041] saveAs" > on 01/02/19, Kenji Noda <zaq94465a / cat.zero.ad.jp> writes: > > > require 'win32ole' > > wd=WIN32OLE.new("Word.Application") > > wd['Visible']=TRUE > > wdoc=wd.Documents.open "C:/WINDOWS/デスクトップ/word2text/docs/test.doc" > > wdoc.saveAs "C:/WINDOWS/デスクトップ/word2text/docs/test.txt",4 > > wdoc.close > > wd.quit > > 確かに指定したワードファイルは開けます。しかしの保存部分でエラーです。 > > script.rb 5:in method_missing : saveAs(RuntimeError) > > OLE rb_compile_error:0 in <Unknown> > > <No Description> > > 型が一致しません > > from script.rb:5 > > とでます。 > > 野田さんは既にOffice 2000にバージョンアップされたようですが、 > > > wdoc.saveAs "C:/WINDOWS/デスクトップ/word2text/docs/test.txt",4 > > を > wd.wordbasic.filesaveAs "C:/WINDOWS/デスクトップ/word2text/docs/test.txt",2 > に変更すると素のWord 97でも動くかも知れません。 > > 情報源は > http://support.microsoft.com/support/kb/articles/Q169/5/65.ASP > http://support.microsoft.com/support/kb/articles/Q169/5/47.ASP > です。 > > ひょっとすると新井さんの > Subject: [ruby-list:25791] win32ole 0.1.4 (型が一致しません) > も同様に対処できるかも知れませんが、ちょっと方法を見つけ > られませんでした。 > 野田です require 'win32ole' wd = WIN32OLE.new("Word.Application") home=Dir::pwd path=home+"/word" Dir::chdir("word") dirinfo=Dir::entries(path) mark='\\' <---------- dirinfo.each do |doc| doc = File.expand_path(doc) next if FileTest.directory?(doc) savefile=doc.gsub '/word/','/word/text/' savefile.gsub! /\.doc/is,".txt" doc.gsub! '/',mark <--------- savefile.gsub! '/',mark <--------- begin puts doc wdoc = wd.Documents.open doc wdoc.saveAs savefile,4 wdoc.close rescue $stderr.print $!.message, "\n" end end puts "Completed!!" sleep(1) wd.quit これで試したら会社のWord97でOKでした