エクセルのファイルをシートごとにテキストファイルへ変換
エクセルのファイルをシートごとにCSVファイルへ変換
ワードの文書ファイルをテキストファイルへ変換


ベクターで圧縮ファイルで公開したんでそっちが便利なかたはそちらへ excel2txt,excel2csv,word2txt

WSH(VBScript)でこんなのが出来ました。

エクセルのファイルをアイコンにドロップするとシートごとに別々のテキストファイルへ出力します。複数ファイルをドロップして一度に処理することも可能。

なお、エクセル持ってないと動きませんので、エクセルなしでエクセルファイル読みたい人が間違ってここへ来ちゃった場合はここじゃなくてMSのビュワーのダウンロードへ行ってください。 あるいは http://www.microsoft.com/downloads/results.aspx?productID=&freetext=Viewer&DisplayLang=ja

エクセルからシートを1枚ずつタブ区切りのテキストファイルに保存できますが 手作業ではしんどいですから全シートを一気にプログラムで保存してしまいます。
シートごとのファイル名は「元のファイルのフルパス名」+「.」+「そのシートのシート名」+「.txt」 になります。従って各シートのテキストは元のファイルと同じフォルダに出来ますから、コピーや移動は適宜処理してください。

ファイルを開いてクリックしてシートを選び、 ファイルメニューから名前を付けてセーブを選び、 テキスト形式を選んでファイル名を入力してセーブ、この繰り返し、 と言うような単純手作業しかしたくない人から貴重な作業時間を奪ってしまい、 暇にしてしまいますが、 コンピュータはそういうロボットのような無味乾燥な手作業を人に朝から晩までさせるためにあるのでなくて、 ロボットのような手作業から人類を解放して、 もっと有用で創造的なことに貴重な時間や手や頭を使えるようにするためにありますから、 貴重な時間や手や頭を、 本質的にはロボットがするべきであって人間様の関与が不要であるような作業に費やすことによって、 仕事をしたつもりになって自己満足し他人の経費を無意味に消費させ不勉強で怠惰な自己の不当な利益としたがるような、 斯様な不届きな方向性とは全く相容れません。
人間のパワーを創造的な仕事に振り向けるためにこそコンピュータは存在するので、 お互い人類のために頑張りましょう。
(てゆーか僕自身そこそこ根気はあるんで多少ならと思って手でやってたんだけど、 「コレで作業費取ってたら申し訳ないよな」と思ったのと、 何より俺はプログラマだと言ってキレた(笑)。 MS系ソフトはあんまり詳しくないんですが どうしてこれしきのものがネットに転がってないんだ。 あ。詳しくないって言っても20年ぐらい前の大昔に MSDOS上のMS-BASICのマニュアル原稿書きのアルバイトしたことならあります。 プログラム自体は簡単なんですけど、 たったコレだけのプログラムなのに あれこれ調べるのが目茶目茶めんどくさかったんですよ。 普段こういう種類の言語を書くプログラマじゃないんで。 「そんなの作って持ってるよ」って人も居るか知んないけど 「だったら公開しろよ」と言いたい。 みんなでオンナジもん作ってたら無駄じゃんか。 ネット検索でヒットしない場所にあるものは公開してるとは言えない。 外へ見せられないものなら外から見れば無いのと同じだ。 それを有ると言い張るのはおかしい。)

さて、以下は定型的なお約束です。 オープンソースとはどういうものか理解されないかたがいらっしゃるようなので、 常識的なことですが念のために書いておきます。
このプログラムの動作は無保証です。 保証を求められるようであればリスクが大きすぎますから無償では公開できません、 というのが無保証である理由です。考えてみればあたりまえですよね。 クレームは受け付けません。なお、改善案は受け付けます。 ただし受け付けはしますが何らかのリアクションを保障するわけではありません。 改善されればもしかすると他の誰かが助かるかもしれない、というのが、 改善案を出す側のモティベーションになると思います。
著作権は放棄しませんが、 「自分の著作物であるかのようにして、 公共の福祉に反する不当なリターンを得ることを許さない」 という目的以外には使わないので、 自分のコピーライトを不当に主張したり、 自分の著作物と偽ってどこかに納入するような行為以外なら、 無断利用で構いません。
このページを見つけたのはあなたですけど、 このプログラムを作ったのはあなたではない。 (このページを見つけたこと自体に対する報酬を得るのはもちろん構いません。 ようこそいらっしゃいました。よく見つけましたね。褒めて遣わしちゃいますよ。うん)
ここの情報を利用して他言語などに改変したものを公開する場合は、 原著作あるいは原資料(ここのURLでも)の表示してね(^^;;

excel2txt.vbs

以下のプログラム部分を選択してメモ帳に貼り付けるなどしてこのファイル名で保存すれば使えます:Windows用(Windows98以前あたりだと自分でWSHをインストールしないとWSHが入ってないカモ)
'excel2txt.vbs -- by i16 2002/10/01

Dim objXL
Dim f
Dim m
Dim ws

If WScript.Arguments.Count<1 Then
   m="excel2txt.vbs -- by i16 2002/10/01"&Chr(10)&Chr(10)
   m=m&"Excelファイルをvbsアイコンにドロップすると"&Chr(10)
   m=m&"ワークシートごとにタブ区切りtxtファイルが出来ます"&Chr(10)
   m=m&"(複数Excelファイルを同時にドロップして一気に作業することも可能)"&Chr(10)&Chr(10)
   m=m&"(MS Excelがインストールされている必要があります)"&Chr(10)&Chr(10)
   m=m&"http://i16.jp"
   MsgBox m
   WScript.Quit
End If

Set objXL=CreateObject("Excel.Application")

'objXL.Visible=True

objXL.DisplayAlerts=False

For Each f In WScript.Arguments
   objXL.WorkBooks.Open f
   For Each ws In objXL.ActiveWorkBook.Worksheets
      If ws.UsedRange.Rows.Count=1 and ws.UsedRange.Columns.Count=1 and ws.Cells(1,1)="" Then
         'MsgBox ws.Name&"Empty"
      Else
         ws.SaveAs f & "." & ws.Name & ".txt", &HFFFFEFC2
      End If
   Next
   objXL.ActiveWorkBook.Close
Next

objXL.Quit
WScript.Quit

'end of excel2txt.vbs

 


エクセルのファイルをシートごとにCSVファイルへ変換


エクセルのファイルをアイコンにドロップするとシートごとに別々のCSVファイルへ出力します。複数ファイルをドロップして一度に処理することも可能。

エクセルからシートを1枚ずつCSVファイルに保存できますが 手作業ではしんどいですから全シートを一気にプログラムで保存してしまいます。
シートごとのファイル名は「元のファイルのフルパス名」+「.」+「そのシートのシート名」+「.csv」 になります。従って各シートのテキストは元のファイルと同じフォルダに出来ますから、コピーや移動は適宜処理してください。

単純に「.csv」を付け加えるので、 万一「.csv」のファイルを読んでも「.csv.csv」のファイルが書き出されて、 元のファイルは無事です。 「.xls」だの「.csv」だの色々あっても「.xls.csv」や「.csv.csv」になるだけで、 元の拡張子を消しませんからファイル名ダブりません。 多数のファイルを一気に処理できるプログラムなら、 この仕様が無事で解りやすいかなと思いました。

この仕様は256バイト近い長いファイル名では破綻すると思いますが、 このツールの性格上、元ファイル名が長いのが悪いと割り切ります。
excel2csv.vbs

以下のプログラム部分を選択してメモ帳に貼り付けるなどしてこのファイル名で保存すれば使えます:Windows用(Windows98以前あたりだと自分でWSHをインストールしないとWSHが入ってないカモ)
'excel2csv.vbs -- by i16 2002/10/01

Dim objXL
Dim f
Dim m
Dim ws

If WScript.Arguments.Count<1 Then
   m="excel2csv.vbs -- by i16 2002/10/01"&Chr(10)&Chr(10)
   m=m&"Excelファイルをvbsアイコンにドロップすると"&Chr(10)
   m=m&"ワークシートごとにcsvファイルが出来ます"&Chr(10)
   m=m&"(複数Excelファイルを同時にドロップして一気に作業することも可能)"&Chr(10)&Chr(10)
   m=m&"(MS Excelがインストールされている必要があります)"&Chr(10)&Chr(10)
   m=m&"http://i16.jp"
   MsgBox m
   WScript.Quit
End If

Set objXL=CreateObject("Excel.Application")

'objXL.Visible=True

objXL.DisplayAlerts=False

For Each f In WScript.Arguments
   objXL.WorkBooks.Open f
   For Each ws In objXL.ActiveWorkBook.Worksheets
      If ws.UsedRange.Rows.Count=1 and ws.UsedRange.Columns.Count=1 and ws.Cells(1,1)="" Then
         'MsgBox ws.Name&"Empty"
      Else
         ws.SaveAs f & "." & ws.Name & ".csv", 6
      End If
   Next
   objXL.ActiveWorkBook.Close
Next

objXL.Quit
WScript.Quit

'end of excel2csv.vbs

 


ワードの文書ファイルをテキストファイルへ変換


ワードの文書ファイルをアイコンにドロップするとテキストファイルへ出力します。複数ファイルをドロップして一度に処理することも可能。

なお、ワード持ってないと動きませんので、ワードなしでワードファイル読みたい人が間違ってここへ来ちゃった場合はここじゃなくてMSのビュワーのダウンロードへ行ってください。 あるいは http://www.microsoft.com/downloads/results.aspx?productID=&freetext=Viewer&DisplayLang=ja

文書ごとのファイル名は「元のファイルのフルパス名」+「.txt」になります。 従って各文書のテキストは元のファイルと同じフォルダに出来ますから、 コピーや移動は適宜処理してください。 単純に「.txt」を付け加えるので、 万一「.txt」のファイルを読んでも「.txt.txt」のファイルが書き出されて、 元のファイルは無事です。 「.html」だの「.rtf」だの色々あっても「.html.txt」や「.rtf.txt」になるだけで、 元の拡張子を消しませんからファイル名ダブりません。 多数のファイルを一気に処理できるプログラムなら、 この仕様が無事で解りやすいかなと思いました。

この仕様は256バイト近い長いファイル名では破綻すると思いますが、 このツールの性格上、元ファイル名が長いのが悪いと割り切ります。
word2txt.vbs

以下のプログラム部分を選択してメモ帳に貼り付けるなどしてこのファイル名で保存すれば使えます:Windows用(Windows98以前あたりだと自分でWSHをインストールしないとWSHが入ってないカモ)
'word2txt.vbs -- by i16 2002/10/01

Dim objWord
Dim f
Dim m

If WScript.Arguments.Count<1 Then
   m="word2txt.vbs -- by i16 2002/10/01"&Chr(10)&Chr(10)
   m=m&"Word文書ファイルをvbsアイコンにドロップするとtxtファイルが出来ます"&Chr(10)
   m=m&"(複数ファイルを同時にドロップして一気に作業することも可能)"&Chr(10)&Chr(10)
   m=m&"(MS Wordがインストールされている必要があります)"&Chr(10)&Chr(10)
   m=m&"http://i16.jp"
   MsgBox m
   WScript.Quit
End If

Set objWord=CreateObject("Word.Application")

'objWord.Visible=True

For Each f In WScript.Arguments
   objWord.Documents.Open f
   objWord.ActiveDocument.SaveAs f&".txt", 2
   objWord.ActiveDocument.Close
Next

objWord.Quit
WScript.Quit

'end of word2txt.vbs

 


以下旧版

こんなのが出来ました。

エクセルからシートごとにテキストファイルへ出力します。
エクセルからシートをテキストファイルに保存できますが 全シートを一気に保存するマクロを作って使っています。
シートごとのファイル名はそのシートのシート名.txtになります。

動作は無保証でプログラムに著作権があった場合著作権は放棄しませんが、 「独占や自分の著作物であるかのようにして、 不当なリターンを得ることを許さない」 という目的以外には使わないので、 自分のコピーライトを主張したり、 自分の著作物としてどこかに納入するような行為以外なら、 無断利用で構いません。
ここの情報を利用して他言語などに改変したものを公開する場合は、 原著作あるいは原資料(ここのURLでも)の表示してね(^^;;

savesheets

Sub savesheets()
    For Each ws In Worksheets
        ws.SaveAs ws.Name + ".txt", xlText
    Next ws
End Sub

 


i16(愛一郎)