初心者です。検索してもわからなかったので質問です。
下記のようなマクロの処理で「AAA」というファイル名のExcelに「2.xls」からデータをコピーし貼り付けています。
・
・
Windows("AAA.xls").Activate
Rows("4:4").Select
Selection.Insert Shift:=xlDown
Windows("2.xls").Activate
Range("C6").Select
Selection.Copy
Windows("AAA.xls").Activate
Range("A4").Select
ActiveSheet.Paste
Windows("2.xls").Activate
Range("C7").Select
Application.CutCopyMode = False
Selection.Copy
・
・
今回は「2.xls」ではなく「3.xls」、「4.xls」、・・・といったように違うファイル名で同じ処理を行ないたいので「2」と指定するのではなく「(ファイル名).xls」といった形にしたいのですが、それは可能なのでしょうか。
ご意見宜しくお願いいたします。
No.4
- 回答日時:
こんばんは。
参考意見ですが・・・
2つのブック間であればVBAを動かしたいファイル名はすでに既知であるでしょうし、他のブックはファイル名がわかっていなくても
たとえばシート1を指定したい場合
worksheets(1)という記述をWindowに使えば、window(1)という記述が使えるので単純な場合楽に使えます。
No.3
- 回答日時:
こんばんは。
何を、どのようにしているのか良く分かりませんが、予め開いておいたブックを、ループをして処理したいという意味なのでしょうかしらね。
例えば、このようにしたらどうでしょうか?
Dim wbName As Variant
Dim WorkbookNames As Variant
WorkbookNames = Array("1.xls", "2.xls", "3.xls","4.xls")
For Each wbName In WorkbookNames
With Workbooks(wbName)
.Activate
'処理
End With
Next wbName
No.2ベストアンサー
- 回答日時:
仮に AAA.xls の Sheet1!A1 にファイル名(2や3等)が入力されているとします。
それをファイル名とするマクロは以下のようになります。なおWorksheetは明示するようにしましょう。そうしないとたまたまマクロ実行時に開いていたシートに対して処理をしてしまいます。また余分なSelectは省いた方が動作が速くなります。
●サンプル●
Windows("AAA.xls").Activate
fName = Worksheets("Sheet1").Range("A1").Value & ".xls" 'A1の値を変数fNameに格納
Worksheets("Sheet1").Rows("4:4").Insert Shift:=xlDown
Windows(fName).Activate '変数fNameを使ってActivateする
Worksheets("SheetA").Range("C6").Copy 'SheetAはコピー元のシート名
Windows("AAA.xls").Activate
Range("A4").Select
Activesheet.Paste
なおCopy時に貼り付け先を指定する方法もあります。
Windows("AAA.xls").Activate
Worksheets("Sheet1").Range("A1").Copy _
Destination:=Workbooks("Book2.xls").Worksheets("Sheet3").Range("A1")
また、値だけコピーすれば良いなら代入を用いる方法もあります。
Windows("AAA.xls").Activate
Workbooks("Book2.xls").Worksheets("Sheet3").Range("A2").Value _
= Worksheets("Sheet2").Range("A1")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
コマンドボタンでマクロを起動...
-
【Excel VBA】ブックを複数開い...
-
フォルダ内の全ブックのシート...
-
ACCESSのVBAでテンプレとなるxl...
-
エクセルVBA Workbook変数に変...
-
EXCEL VBA起動時の処理
-
【ExcelVBA】指定の書式で、マ...
-
【VBA】他のExcelを起動し、呼...
-
excelでハイパーリンク 別ブッ...
-
Excel VBAを後ろで動かす方法
-
VBA ファイルの開き方
-
[Excel VBA] フォルダ内の複数...
-
エクセル2010で2003形式でマク...
-
【マクロ】その時、その時で変...
-
VBAに詳しい方教えてください。
-
【ExcelVBA】クエリの更新とピ...
-
「開いているすべてのブック」...
-
エクセルファイルを自身のファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
フォルダ内の全ブックのシート...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全てのBookに同じ...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelマクロ、任意セルの値で名...
-
[Excel VBA] フォルダ内の複数...
-
VBA、Excelのworkbook.open に...
-
すでに開いているブックのマク...
-
EXCELマクロで上書きメッ...
-
VBA セル入力された日付データ...
-
EXCEL VBA起動時の処理
-
エクセルのマクロについて教え...
-
他のBookのユーザー定義関数を使う
-
Excel VBAを後ろで動かす方法
-
Excelの一括印刷で通し番号をつ...
おすすめ情報