初めまして。
現在Excelにマクロを組み込み、ボタンを押すと5行目以下が
csvファイルとして出力されるというプログラムを使っております。
しかしながら、多数のExcelファイルでこの作業をする必要が生じました。
そのため、フォルダ内の全てのExcelファイルに同じこと
(5行目以下をcsvファイルとして出力)をしたいのですが、
もしそのやり方をご存知でしたらお教えいただけませんでしょうか。
念のため現在使っているExcelマクロを記載致します。
Private Sub Workbook_Open()
ActiveWindow.ScrollRow = 1
MsgBox "Workbook_Openイベントが発生しました。"
Call AddMenu
End Sub
Sub AddMenu()
Dim NewM As Variant, NewC As Variant
Set NewM = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup)
NewM.Caption = "変換ツール(&G)"
Set NewC = NewM.Controls.Add
With NewC
.Caption = "csv書き出し(&R)"
.OnAction = "henkan_conb"
.BeginGroup = False
.FaceId = 271
End With
End Sub
Sub henkan_conb()
Sheets("sheet1").Select
Rows("1:4").Select
Selection.Delete Shift:=xlUp
Row = 1
Do Until Cells(Row, 1) = ""
Row = Row + 1
Loop
If Cells(Row, 1) = "" Then
Rows(Row).Select
Selection.Delete Shift:=xlUp
End If
Range("A1").Select
ActiveWorkbook.SaveAs Filename:= _
"C:\file.csv", _
FileFormat:=xlCSV, CreateBackup:=False
End Sub
No.1ベストアンサー
- 回答日時:
考え方だけね。
VBA コードを仕込むブックと、CSV の元になる多数のファイル(5行目以降にデータが書いてあるブック)とを分けて考える。
つまり、「プログラム」「データ」「出力物」にわけて考える。
大まかな流れは
1. プログラムブック(prog.xls)で、フォルダを指定して実行。
2. 指定されたフォルダにあるブックを 1冊ずつ開いては閉じる。
3. (2) の中で、5行目以降を CSV に出力する。
4. (2)(3) を最後のブックまで実行。
使うテクニックとしては、
1. 他のブックを開いたり閉じたりする。
2. オブジェクト変数に慣れる。
ブックやシートにアクセスする際に Workbook 型や Worksheet 型の変数を使うと非常に便利。
(1) の開くタイミングで、開いたブックを Workbook 型の変数で参照する。
目的のシートを(「左から数えて何番目」か「固定のシート名」を頼りにして)Worksheet 型の変数で参照する。
3. あるフォルダ内のすべてのブックのファイル名を取得できるようにする。
4. シートの内容を CSV に出力できるようにする。
がんばってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 複数のエクセルから一つの...
-
VBS Bookを閉じるコード
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
複数のエクセルブックをひとつ...
-
マクロで最終行を取得したい
-
VBSでExcelのオープン確認
-
VBAで複数のブックを開かずに処...
-
VBAで別のブックにシートをコピ...
-
【VBA】全シートの計算式を全て...
-
VBA コードを実行すると画面が...
-
エクセルVBAが途中で止まります
-
現在開いているbook全てを対象...
-
エクセルVBAでテキストボックス...
-
VBAが止まります。
-
vbaでvbaProjectのパスワード解...
-
エクセルマクロで、他ブックか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報