
EXCEL VBAについての質問です
同じ処理を名前の違う複数のファイルで行いたいと思っています
そこで、セルA2へファイル名の『○○.xls』○○部分だけをそれぞれのファイルに書き込んでおき、マクロは共通にしてファイル名をそれぞれのファイルから読み込んで実行したいと思っています。
良い方法を教えてください。
Workbooks("200809.csv").Activate
Sheets("200809").Select
Range("C3:C33").Copy
Windows("○○.xls").Activate'←ここをファイルにあわせて変更できる形にしたい
Sheets("報告書").Select
Range("G5:G35").Select
ActiveSheet.Paste
Windows("200809.csv").Activate
Range("K3:K33").Copy
Windows("○○.xls").Activate’←ここ
Sheets("報告書").Select
Range("I5:I35").Select
ActiveSheet.Paste
Workbooks("200809.csv").Close SaveChanges:=False
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
No.1です。
追加質問の件ですが、もともとのソースの
Sheets("報告書").Select
の"報告書"を、セルから取得したいという様な意味でしょうか?
それならまったく同様に↓と、なります(Sheet1のA3にある場合)
Sheets(ThisWorkbook.Sheets(1).Range("A3")).Select
ThisWorkbook.Sheets(1).Range("A3") これが、
ThisWorkbook:このマクロがあるブックの、
Sheets(1):1枚目のシートの、
Range("A3"):A3セルの値
を、指しています。
No.4
- 回答日時:
実行しているマクロがあるブックはThisWorkbookで表せます。
ThisWorkbookを使えばファイル名をセルデータから取得する必要がなくなります。
With Workbooks("200809.csv").Sheets("200809")
.Range("C3:C33").Copy ThisWorkbook.Sheets("報告書").Range("G5:G35")
End With
No.2
- 回答日時:
hiro_eleさんのオリジナルコードに付け加えるなら
Workbooks("200809.csv")のSheets("200809")のセルA1にファイル名があるとして
Windows(Range("A1").Value & ".xls").Activate
とすればよいです。
今回の例なら、Select、Activeteしなくても、"200809.csv"から"○○.xls"へ、コピペ可能です。
両ファイルとも開かれていることが前提になります。
例えば
With Workbooks("200809.csv").Sheets("200809")
.Range("C3:C33").Copy Workbooks(.Range("A1").Value & ".xls").Sheets("報告書").Range("G5:G35")
End With
といった感じです。
回答してくださりありがとうございます。
説明不足だったと思いますが、
Workbooks("200809.csv")のSheets("200809")のセルA1にファイル名があるのではなく、
Workbooks("○○.xls")のSheets("報告書")のセルA2に自分のファイル名「○○」があります。
そしてこのマクロも○○.xlsに記述しています。
よろしくお願いします
No.1
- 回答日時:
A2に○○と入っているのは、このマクロがあるBookのシート上ですね?
でしたら以下のようにすることで可能かと。
#Sheet1のA2に○○と入っていると仮定
Windows("○○.xls").Activate'
↓
Windows(ThisWorkbook.Sheets(1).Range("A2") & ".xls").Activate
動作の確認はしていません。あしからず。
mt2008さんありがとうございます。
試してみたところ今やろうとしていることはうまくいくようです。
すばやい回答ありがとうございました
もうひとつお聞きしたいことがあります。
おなじマクロで、今はファイル名が違う場合にも対応できるようになりました。
もし、ファイル名とシート名も違う場合にセルから取得する何か方法があるでしょうか。
マクロはこのファイル名がいろいろあるファイル内のシートにあります。
シートはひとつだけです。
できますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
【マクロ】元データと同じお客...
-
名前の変わるブックをアクティ...
-
【Excel】マクロの保存先について
-
エクセルのvbaにて thisworkboo...
-
エクセル関数>参照ファイル名...
-
エクセルVBA 個人用マクロブッ...
-
R1C1参照形式から抜け出したい
-
エクセル;相対パスを絶対パスへ...
-
エクセルのマクロについて教え...
-
ExcelVBAで困っています。
-
【Excel VBA】マクロでExcel自...
-
EXCELブックが勝手に開いて困っ...
-
ファイル名変更後も、マクロを...
-
excel VBA コピーファイルのマ...
-
EXCEL 参照設定が他のPCでエラー
-
EXCELマクロで、開いてはいるが...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
-
【Excel】マクロの保存先について
-
【マクロ】元データと同じお客...
-
エクセル;相対パスを絶対パスへ...
-
エクセルで未保存に対するメッ...
-
excelで直前に参照していたブッ...
-
エクセルを開いて文字を打つ際...
-
EXcelのマクロで相対パスでファ...
-
EXCELのボタンによるマクロの登...
-
EXCELマクロで、開いてはいるが...
-
エクセルで使用期限付きのブッ...
-
EXCELブックが勝手に開いて困っ...
-
名前の変わるブックをアクティ...
-
複数のExcelファイルの印刷設定...
-
複数のExcelブックから特定シー...
-
エクセルVBAで作成した別ブック...
おすすめ情報