エクセルで、指定フォルダ内のファイルオープン→別フォルダに同じファイル名のcsvとして保存 のマクロを作ろうとしています。
現在下記のようなマクロを途中まで作成したのですが、保存の良い方法が分からず困っております。
(ファイルオープンまでは出来ているようですが、その後エラーが出てしまいます)
どなたかお知恵を拝借願えませんでしょうか。
どうぞ宜しくお願い致します。
Sub Book_Open()
Dim BookName As String
Dim PathName As String
PathName = "C:\test_htmltocsv\test\"
BookName = Dir(PathName & "*.html")
Do Until BookName = ""
Workbooks.Open PathName & BookName
BookName = Dir()
ActiveWorkbook.SaveAs "Sample.xls" ←←
Loop
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは。
補足で出ている内容については、両方とも、VBAマクロでも可能ですが、どちらかというと、Unix ツールで簡単に出来てしまいますが、テキストエディタでも良いと思います。メモ帳ですと、ファイルの大きさに制限がありますが、可能なら、メモ帳でも良いと思います。
「?」は、おそらく、Unicode が入り込んだものだと思います。Excel上で、通常、CSV は、JISですから、一旦、保存してしまうと、Unicode は文字化けというよりは、もう単なる「?」として、文字コードは単に、"x3F"でしかありませんから、そのまま、置換すれば済みます。
また、CSV はテキストファイルですから、Win用のGUIのcat ツールもあるとは思いますが、これも、テキストエディタで十分ではないではありませんか?なお、Unix 系は、すべて、コマンドラインで操作しますが、MS-DOSコマンドのCopy でも可能です。
ご回答ありがとうございました
?が付いてしまうもの以外にも、文字化けにより完全に読めないページもありました。
色々トライしてみようと思います。
No.2
- 回答日時:
#1です。
1.?が残る件はhtmlの文字コードの問題で文字化けしているのでしょうね。具体的なURLを開示した上で、別に質問を立てていただけると、詳しい方から回答が得られるでしょう。
2.CSVファイルの合併の件は、CSV作成からVBAでやろうとすると、全く別のコードになりますので、追加オーダーの範囲を超えていると思います。簡単には、CSVファイルといってもただのテキストファイルですので、
「テキストファイル 結合 フリーソフト」
で検索いただくと、合併順等画面で確認した上で、合併するといったソフトが見つかると思います。
あるいは、「エクセル ファイル 結合 VBA 1シート」等で検索していただくと見つかるコードを、xlsファイルをhtmlに置き換えて考えるだけで、適用可能でしょう。
ご回答ありがとうございました。
早速調べたところ、結合ソフトは色々あるのですね。
文字化けについてはもう一度元データを検証してみたいと思います。
ご協力に感謝いたします。
No.1
- 回答日時:
拡張子を変えても、同じ名前だとエラーになる様ですね。
適当な名前で保存後、所期の名前でコピーすると可能でした。ご質問のコードと相違しますが、CSVで保存とありますので、それに合わせてみました。また、当方の環境に合わせてありますのでアレンジしてください、C:\直下、拡張子.htmなど。なお、当方XL2000です。
Sub Book_Open2()
Dim BookName As String
Dim PathName As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
PathName = "C:\"
BookName = Dir(PathName & "*.htm")
Do Until BookName = ""
Workbooks.Open PathName & BookName
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=PathName & "temp.csv", FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close savechanges:=False
fso.CopyFile PathName & "temp.csv", PathName & fso.getbasename(BookName) & ".csv"
Application.DisplayAlerts = True
BookName = Dir()
Loop
End Sub
FileSystemObjectを使うまでもないでしょうが、楽に走りました。詳細は下記をご覧下さい。
http://officetanaka.net/excel/vba/filesystemobje …
この回答への補足
mitarashi様
ご回答本当にありがとうございました。
先ほど走らせたところ無事動作を確認いたしました。
お忙しい中、ご回答に心より感謝いたします。
2つほど、ヒントだけでもお教えいただけると嬉しいのですが
■htmlから直接引っ張ってきているために、csv化の際に「?」や「 ?」が残ってしまうのですが、これを消してしまう手立てはありますでしょうか?
■もうひとつ
A1B1
A2B2
A3B3
というHTMLファイル(f1、f2、f3・・・)がたくさんあり、さきほどこれを個々にCSV化して頂けたわけですが、
f1A1 f1A2 f1A3
f1B1 f1B2 f1B3
f2A1 f2A2 f2A3
f2B1 f2B2 f2B3
・・・
と1つのcsvファイルにまとめることは出来ますでしょうか?
何度も質問してしまい申し訳ありません
お手すきのときで結構ですので、お力添えをいただけましたら幸いです。
今回を機にマクロについてもっと知りたいと思うようになりました。
どうもありがとうございました。
順引き、逆引き おすすめのマクロ本がございましたら、教えていただけると嬉しく思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
Wordで差込印刷した後に別々の...
-
エクセルファイル名に更新日時...
-
エクセル UserForm 呼び出しで...
-
Excel csv保存 列数が異なる場...
-
サブフォルダから部分一致のエ...
-
大量のCSVファイルをExcel形式...
-
マクロ実行後、表示がおかしくなる
-
EXCELからCSVファイルの出力方...
-
エクセルのマクロで行と列の削...
-
vbaでボタンをクリックして上書...
-
指定フォルダ内のファイルオー...
-
PowerPoint 2002でファイル名を...
-
EXCEL 検索時の設定
-
複数のexcelのファイルを一括で...
-
Excelファイルを一発でcsvファ...
-
エクセルでcsvファイルを開いて...
-
エクセルの保存履歴を残す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
Wordで差込印刷した後に別々の...
-
ExcelブックをGoogleスプレッド...
-
Excel csv保存 列数が異なる場...
-
エクセル UserForm 呼び出しで...
-
サブフォルダから部分一致のエ...
-
エクセルファイル名に更新日時...
-
PowerPoint 2002でファイル名を...
-
EXCEL 検索時の設定
-
エクセルでcsvファイルを開いて...
-
マクロ実行後、表示がおかしくなる
-
複数のexcelのファイルを一括で...
-
実行時エラー52
-
【Excel VBA】ファイルを保存し...
-
VBAでマクロを使って、マクロ無...
-
vbaでボタンをクリックして上書...
-
大量のCSVファイルをExcel形式...
-
For~Nextルーチンで最初の1回...
-
Word2010で閉じるボタン押下後...
おすすめ情報