前に、Excel仕様書をVBA以外の言語で自動生成プログラムをつくって、自動生成する方法として、タブ区切りファイルにすればいいっていうことを書いたと思います。
で、そのときだったか、ちがう時だったか(もっと前のブログの気もするんですけど)、Excelから、タブ区切りファイルを作成するマクロを作るって書いた気があるんですけど。。。ちがったかな??
とにかく、そんな気がしたんで、いま、時間があったから、軽く作ってみました。
この下に詳しいことが書いてあります(おなじことが、ここにも書いてあります)。
これをつかって、
(1)あらかじめ、仕様書の置き場を決めておく
(2)その置き場にある仕様書を、「コピーシート一覧」に設定
(3)書き出し先を、「書き出しフォルダ名」に設定
しておいて、
仕様書が修正されるたび(つーかやりたいとき)に、
(4)「コピー実行」をクリックして、コピーしたら、
(5)「書き出し実行」でCSVファイルを保存すれば、
OK
コピー実行も、書き出し実行も、同一ファイルは、上書きにしてあるので、更新されたら、そのファイルを生かして、シート内にコピー、タブ区切りで書き出すようにできてます。
いま、ちょこっとつくって、ちゃんとテストしてないので、バグとかあるかもしれません。ごめんなさい。フリーソフトを作るというよりか、ブログの延長として作っているので。
それと、エラー処理は、ちゃんとやってません。
今度、もちょっとちゃんとして、MOUGとかに、出したいと思います。
とはいえ、一応使えるので、どーぞ。
あと、この逆で、テキストファイルから、Excelが操作できれば、VBAがわかんなくても、ほかの言語で対応できるんだけどね。それよりも、自動生成プログラムを実際に作ってみせると。。。商売あがったりになったりして(>_<!)
では、以下、今回作ったものについてです。
Excelからタブ区切りファイル作成
■■ 内容
このブックの「操作画面」シート以外のシートがあったとき、
そのシートをタブ区切りファイル形式にして、保存します。
■■ ダウンロードと実行
(1)下のところをクリックして、ダウンロードしてください
makeTabFile.lzh
(2)lhaで圧縮されているので、解凍してください
makeTabFile.xlsが現れます
(3)それを実行してください。
当然マクロがありますので、マクロを有効にしてください
なお、XPの場合、証明書がどーとかこーとかといわれますので、
てきとーにやってください(証明書は、はいってないです)
■■操作方法
<ふだん、ちょっと使う場合>
(1)このブックに、CSVファイルで保存したいシートをコピーします。
(2)「書き出しフォルダ名」の下のセル(B18)に、書き出し先のパスを指定します
現在、Excelファイルがあるところのフォルダになっていると思います。
変えたければ、修正してください。
なお、ここになにも入れないと、カレントになります
(カレントパスは、Windowsのバージョンによって異なる)
(3)「書き出し実行」ボタンをクリックします。
そうすると、「書き出しフォルダ名」で指定したパスの下に、
シート名.txtのファイル名で、タブ区切りファイルを書き出します。
同一名のシート名.txtがあった場合、上書きします
------
<繰り返し使う場合>
(1)コピーする対象シートを設定します
コピーシート一覧の「ファイルパス」に、ファイル名(フルパスで)を指定し、
シート名に、そのファイルの中で、コピーしたいシートを指定します。
ファイル名が指定されていて、シート名の指定がない場合、全シートをコピーします
E5以外で、ファイルパスの指定がない場合、直前のファイルから探します。
E5のファイル名に指定がないのはエラーです。
E5以下、E桁を選択して、「ファイル参照」ボタンをクリックすると、ダイアログから
ファイルの指定ができます(E桁以外ではできません)。
(2)コピーシート一覧を書き終えたら、「コピー実行」ボタンをクリックします
このシートに、コピーシート一覧であったファイルをコピーします。
同一名のシートがあった場合、前のシートを削除してコピーします。
(3)「書き出しフォルダ名」の下のセル(B18)に、書き出し先のパスを指定します
現在、Excelファイルがあるところのフォルダになっていると思います。
変えたければ、修正してください。
なお、ここになにも入れないと、カレントになります
(カレントパスは、Windowsのバージョンによって異なる)
(4)「書き出し実行」ボタンをクリックします。
そうすると、「書き出しフォルダ名」で指定したパスの下に、
シート名.txtのファイル名で、タブ区切りファイルを書き出します。
同一名のシート名.txtがあった場合、上書きします