|
▼YUKI さん:
こんにちは。
>これは本を読みながら自分で作ったのです↓
本だけから記述したにしては
インデントもついているし、
よくまとまっていますね(^^
ただ、
>Sub CSV()
には、ある重要な処理が抜けています。
勝手ながら、処理過程をまとめてみますと、
'-------------------------------------
▼(1)
FileDialogを使って複数CSVファイルを選択します。
▼(2)
FSOを使って各CSVファイルを ReadAll し、
テキストを連結します。
fStr = fStr & vbCrLf & .ReadAll
↑この改行は不要です
▼(3)
結合したテキストを 拡張子*.xls の名前でファイルに
書き出します。
> With fs.CreateTextFile(fName)
> .Write fStr
> .Close
> End With
▼(4)
いまアクティブになっているBookを名前をつけて保存します。
>ActiveWorkbook.SaveAs FileFormat:=xlNormal
'-------------------------------------
とまぁ、こんな過程かと思うのですが、
問題というのは、
▼(3)
結合したテキストを 拡張子*.xls の名前で保存して
いることです。
ワークシート上に複数テキストファイルをまとめて、
そのBookを保存してないので、
▼(2)〜▼(3) のプロセスで ディスク上に 結合したテキスト
ファイルは作成されますが、
そのことと、
▼(4) の 現在Bookの別名保存↓
>ActiveWorkbook.SaveAs FileFormat:=xlNormal
とは、どこにも関連がありません。
とりあえず、
作成されたコードを活かして、Book(*.xls)として保存する
ためには、
▼(1) ファイルの選択 (変更なし)
▼(2) テキストの結合 (変更なし)
▼(3) 名前を付けて(拡張子*.CSV)テキストの出力
▼(4) 出力した結合後のCSVファイルを
[データ]-[外部データの取り込み]
-[テキストファイルのインポート]
を使って、新規ワークシート上にインポートする。
▼(5) インポートしたシートのあるBookを
XLS形式で「名前をつけて」保存する。
としなければなりません。
さいわい、
▼(4) の部分についてはすでにマクロ記録がありますから、
上の処理過程を記述するコード(材料)はほとんど出揃って
います。
あと少しですので、コードの修正に精進してください。
|
|