|
▼IROC さん:
>どのようなデータをどのように保存したいのか不明ですが、
>Closeメソッドで保存せずに、Saveasメソッドで保存してはどうでしょ?
お返事ありがとうございます。
それほど特殊なデータではありません。やりたいことは、
たくさんのファイル(現在数十個、そのうち数百個ぐらいまで増える予定)があります。これらのファイルは内容は異なりますがフォーマットは完全に統一されています。これらは全て一つのフォルダに存在します。
これらをただ単純につなげる(下にのばしていく)ことだけがしたいのですが、これらのファイルの親フォルダにhoge.csv を作成してあって、これのみを立ち上げた状態で全てのファイルを開き、hoge.csv をいったん閉じたあと
For I = 1 To FileNo 'FileNo は対象ファイルの個数
ActiveCell.SpecialCells(xlLastCell).Select
x1 = ActiveCell.Row
y1 = ActiveCell.Column
Range("a1", Cells(x1, y1)).Select
Selection.Copy
ActiveWorkbook.Close SaveChanges:=False
Workbooks.Open HogePath & "hoge.csv"
Range("a1").Select
If ActiveCell.Value <> "" Then 'A1には全ファイルに必ずデータがある
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Selection.PasteSpecial
Workbooks.Item("hoge.csv").Close SaveChanges:=True
Next I
てな感じで開いて閉じて、開いて閉じて…とやっているんです。
美しくはないですけど、ファイルの名前が特定できないので荒技です。
読み込むファイルの順番は気にしなくて良いのでこういう風にやってます。
ところが、全く同じ形式のファイルであるにもかかわらず、最初にコピペしたファイルだけ「""で囲まれてタブで区切られた」形でセーブされてしまうんです。困ったもんです。ちなみにSaveAs でもうまくいきませんでした。
(ちなみに、別スレで「オープンしてあるブックの数による分岐」はこのマクロの前に置いてあります。hoge.csv 以外のファイルが開いてある時はエラーにするような仕様です。)
|
|