[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストファイルを生成するマクロ』(ゆういち)
ファイル名を指定して、新たなテキストファイルを大量に生成したいと思っています。
ファイル名の規則は、たとえば、画像の場合、次のようになります。
姓名誕生日
山田太郎2976
abc&223&(あいうえお)
あ
い
う
えお
つまり、次のようになります。
A1+B1+C1+・・・・・Z1
A2+B2+C2+・・・・・Z2
・
・
・
A10000+B10000+C10000+・・・・・Z10000
他の条件は以下の通りです。
・セルの範囲は縦は1-10000、横はA-Zまでです。
・ファイルを保存するフォルダはCドライブのデスクトップにある「TXT」というの名前のフォルダとします。
・空白のセルもあまり意味はありませんが、結合する方式です。
・UTF-8である。
・拡張子はtxtである。
よろしくお願い申し上げます。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
>ファイル名の規則は、たとえば、画像の場合、次のようになります。 画像ってなんでしょう。
説明が良くわからないのですが、各行のA:Zを連結したものがファイル名で、 中身は空なのでしょうか?
ファイルは10000個ということですか? (Mook) 2014/09/01(月) 22:08
忘れていました。申し訳ありません。
ttp://www.fastpic.jp/viewer.php?file=6237426743.png
説明が良くわからないのですが、各行のA:Zを連結したものがファイル名で、
中身は空なのでしょうか? その通りです。
ファイルは10000個ということですか? 10000個ではなく、A:Zがすべて空白の場合は、ファイルは生成しません。またファイル名が重複していることはないので、考慮する必要はありません。
説明不足で申し訳ありませんでした。
再び、よろしくお願い申し上げます。
(ゆういち) 2014/09/02(火) 08:18
こんなところでしょうか。
Sub Sample() Dim TextFolderPath TextFolderPath = CreateObject("Wscript.Shell").SpecialFolders("Desktop") & "\TXT"
If Dir(DeskTopPath) = "" Then MkDir DeskTopPath
tbl = Range("A1:Z10000") With CreateObject("ADODB.Stream") .Type = 2 .Charset = "UTF-8"
For r = 1 To UBound(tbl, 1) fn = tbl(r, 1) For c = 2 To UBound(tbl, 2) fn = fn & tbl(r, c) Next If fn <> "" Then .Open .writetext "", 0 .savetofile TextFolderPath & "\" & fn & ".txt", 1 .Close End If Next End With End Sub
(Mook) 2014/09/02(火) 12:58
エラーになってしまいました。詳細をキャプチャしました。
ttp://www.fastpic.jp/viewer.php?file=6527453271.png
ttp://www.fastpic.jp/viewer.php?file=1014167955.png
下のようにフォルダはパスで指定する方針のほうが助かります。フォルダがない場合は、生成するというのも助かります。
C:\Users\ABC\Desktop\TXT
再び、よろしくお願い申し上げます。
(ゆういち) 2014/09/02(火) 17:41
こちらではエラーなく実行できたのですが、とりあえず TextFolderPath = "C:\Users\ABC\Desktop\TXT" として、フォルダを準備して実行ください。
エラー時の TextFolderPath の中身はどうなっているでしょうか。 (Mook) 2014/09/02(火) 17:45
DeskTopPath を TextFolderPath に修正してください。 (cai) 2014/09/02(火) 17:54
あっ、修正もれ・・・。 申し訳ありませんm(_ _)m (Mook) 2014/09/02(火) 17:57
If Dir(DeskTopPath) = "" Then MkDir DeskTopPath
を削除したらできました。
何度もありがとうございました。
(ゆういち) 2014/09/02(火) 19:03
エラーの原因の修正は If Dir(TextFolderPath ) = "" Then MkDir TextFolderPath ですけれど、都合の良いように修正して使ってください(あくまでも Sample なので)。
何かの対応に、内容を理解しておいたほうが良いとは思いますが・・・。 (Mook) 2014/09/02(火) 19:20
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.