No.4ベストアンサー
- 回答日時:
2つに分けて作りました。
元ファイルの有るフォルダーに置いてください。------------------------------------------------------------------------------------------
Sub 一覧表作成()
Dim ファイル名 As String
Dim 行番号 As Long
Cells.ClearContents
ファイル名 = Dir(ThisWorkbook.Path & "\*.xls")
Do While ファイル名 <> ""
If ThisWorkbook.Name <> ファイル名 Then
If StrConv(Right(ファイル名, 4), vbLowerCase) = ".xls" Then
行番号 = 行番号 + 1
Cells(行番号, 1) = ファイル名
End If
End If
ファイル名 = Dir()
Loop
End Sub
------------------------------------------------------------------------------------------
上記でアクティブシートに一覧表を作ります。
不要なファイルが有ったら行削除してください。
------------------------------------------------------------------------------------------
Sub 変換保存()
Const コピー先パス名 As String = "C:\○○\"
Dim コピー元パス名 As String
Dim 最終行 As Long
Dim 行 As Long
Dim ファイル名 As String
コピー元パス名 = ThisWorkbook.Path & "\"
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
For 行 = 1 To 最終行
If StrConv(Right(Cells(行, 1).Value, 4), vbLowerCase) = ".xls" Then
ファイル名 = Left(Cells(行, 1).Value, Len(Cells(行, 1).Value) - 4)
Workbooks.Open Filename:=コピー元パス名 & ファイル名 & ".xls"
If Dir(コピー先パス名 & ファイル名 & ".xlsx") <> "" Then Kill (コピー先パス名 & ファイル名 & ".xlsx")
ActiveWorkbook.SaveAs Filename:=コピー先パス名 & ファイル名 & ".xlsx", FileFormat:=51
ActiveWindow.Close
End If
Next
Application.DisplayAlerts = True
End Sub
------------------------------------------------------------------------------------------
上記でファイルコピー&変換を行います。
事前にコピー先フォルダーを作成しておいてください。
「"C:\○○\"」はコピー先のフルパス名に直して下さい。最後の「\」を忘れずに!
マクロが有ったファイルは保存時に無条件で削除されます。
保存先に同じ名前が有った場合は無条件で上書きされます。
誠にありがとうございました。
無事完全に変換ができました。
私の変換では , FileFormat:=51 の部分が抜けていました。
本当にありがとうございました。
これで作業か完全にスピードアップされます。
No.6
- 回答日時:
No.4 の追補(誤解防止)
「マクロが有ったファイルは保存時に無条件で削除されます。」は「マクロが有ったファイルは保存時に無条件でマクロが削除され保存されます。」です。元ファイルのマクロはそのまま残ります。
No.5
- 回答日時:
No.4 の追補
元ファイルは開くだけなので削除されることはありません。
元ファイルは1つのホルダーに置いておいてください。
(ホルダーごとに実行すれば実行出来ますが、同じ名前のファイルがあると先に変換したものが削除されますので注意が必要です)
No.3
- 回答日時:
いきなりマクロ提供よりも、少し打診をしたいところがあります。
いくら変換しても、元のデータそのものは残しておいて良いかと思います。
6万ファイルにはいろんなものが出てくるでしょうから、変換しながら、リスト表を作っておくとよいと思います。
作ったリスト表は、ハイパーリンクを入れたら、とんでもなく重くなってしまいますが、ダブルクリック・マクロでそのファイルが開けられるようにすると良いと思います。
その時、元のファイルの更新日や日付を残せたら良いと思いますが、結構、これが難問だったりすることがあります。
新しいxmlファイル形式は、ZIP圧縮なので、省スペースにはなります。
一つのフォルダーに6万も入れても、管理状態が良くないと思いますから、何らかの分類・分配方法が必要かと思います。
なお、ご質問者さんは、他人が作ったマクロの修正はある程度可能ですか?
また、私の心配ごとは、6万件のファイルを出し入れした時のメモリ状態です。
パソコンが健康な状態なら良いのですが、昨今、Windows10にしてから、どことなく不明なパソコンの故障が増えているような気もします。マクロが最後まで持つか分からないのです。それに、それでも相当の時間が掛かります。
ありがとうございます。
ご返事が遅れ申し訳ありません。
元データーは、一応ほかに残しているので、最悪失敗しても何とかなるとは思っていますが、残すのに越したことはないので、できればそのフォルダーの中に【旧資料】のフォルダーを作り、残したいとは思っています。
ご指摘の、リスト表までは考えていませんでしたが、フォルダーでかなり分けていますので、不要かと思っています。
「変換しながら、・・・」と書かれていますが、この変換が、自動でできれば・・・と、いろいろ模索しています。
6万のデーターを一回一回開いて、新バージョンで名前を付けるのは時間がかかりすぎ、2か月ほどかかりそうです。これをマクロで行う式がわかりません。ご存知でしたらお教えください。なお、フォルダーを作るマクロもわかりません。ワークブックやシートを追加することまではできますが、その上のフォルダーについては、本を読んでもどこにも出てきません。
簡単に出来そうなのですが、ご存知でしたらお教えください。
よろしくお願いいたします。
また、マクロは自己流なので、他の人が作ったものが理解できるかは不明です。もし、マクロ内容が記載されましたら、自分でもやってみます。
尚、データーはすべて外付けハードディスクに入れていますので、メモリーは大丈夫かと思います。
No.2
- 回答日時:
ちなみに、元ファイルはマクロが存在したりしなかったりするのでしょうか?
マクロが存在しなければ、開いて、名前を付けて保存の繰り返しをするだけですが、マクロがあるとセキュリティの問題などうまくいかない可能性もあります。いかがでしょうか?
ありがとうございます。
確かに、マクロの入ったものは一部存在しますが、不要なマクロなので、消しながら作業しています。
互換の場合も【マクロを残すかどうかの】コメントが出て、この場合は仕方ないかと思っています。
ご回答の「開いて、名前を付けて保存」の作業を手作業でなく自動でしたいのですが、有効な方法はないでしょうか?
No.1
- 回答日時:
別に変換しておく必要が無いと思います。
新しいバージョンでは問題なく開けますから…
使用容量が増えるだけ無駄だと思います。
ありがとうございます。実はこの大量の資料の内容を変更をしたいのですが、変更したあと保存すると、いちいち互換バージョンで保管することを確認に来ます。そのとき、必ず「はい」を押さないと、次へ進めません。6万のデーターにいちいち「はい」押すと、その間何もできないので、困っています。新バージョンではその必要がないので、【データー呼出し】⇒【変更】⇒【保存】⇒【閉じる】⇒【次のデーター呼出し】と進んで、この確認作業がなく何時間でも勝手にやってくれるのでありがたいのです。自動でデーター呼出しはできますので、この変換作業さえ済めば今後の作業に非常に有効になります。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】読取専用のファイル...
-
VBAでワークブックの名前を変数...
-
エクセルマクロで不特定なファ...
-
ファイルを開かずにマクロを実行
-
エクセルのシートの数を数えた...
-
VBA EXCELファイル選択⇒指定セ...
-
EXCEL VBA 指定したファイルが...
-
複数のexcelファイルを一つにす...
-
【Excel VBA】ファイル名が一...
-
vlookup関数の引数を変数で指定...
-
フォルダ内のブック全部にパス...
-
ISOファイルとMDSファイル
-
ccdファイルはどのようにして使...
-
差し込み印刷の元データファイ...
-
ACCESSでデータ読み取り専用を...
-
イーファンビューでwebpファイ...
-
非サポートファイルとは…???
-
OneDriveはどちらが「主」でし...
-
gccを行ってもexeファイルが生...
-
access テキストボックスの値取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
VBAでワークブックの名前を変数...
-
フォルダ内のexcelファイルを順...
-
エクセルのxls形式からxlsx形式...
-
エクセル 複数ファイルの一括...
-
エクセルのシートの数を数えた...
-
accessフォルダを移動したらフ...
-
vlookup関数の引数を変数で指定...
-
Accessのaccdbファイルを起動で...
-
ファイルを開かずにマクロを実行
-
【Excel VBA】ファイル名が一...
-
EXCELマクロを無効にして開く方法
-
エクセル(マクロ)のファイル...
-
ACCESS VBAでファイルを開くダ...
-
Excel VBA でファイルが開かれ...
-
ファイルの保存場所を変えたら...
-
vba初心者です。 質問です。 毎...
-
フォルダ内のブック全部にパス...
-
エクセルマクロ 異なるファイ...
おすすめ情報