VBAを勉強中で、分からないので教えてください。
2つのWorkbook間でCopy、Pasteを繰り返し、必要なデータ
を一覧に書込みするマクロを作成する時
Excelデータ(同じフォーマットでセルに入っているデータが少し
ずつ違う)で、異なるファイル名、異なるシート名になってしまって
いるものをマクロで処理をしたいのですが、VBAで書き込む時
にはWorkbooks("○○").Worksheets("○○")と指定しなくて
は動作してくれないので、どのように指定したらいいか困っています。
「直前にアクティブだったWorkbook指定する」「先頭に位置する
sheetを指定する」なんてコードがあれば、一番いいのですが、
そういうコードはあるのかもわかりません。
最終的には"あるセル"に入っているファイル名で保存してしまう
ので、一時的に仮ファイル名、仮シート名に変えて、後に削除
して処理をすればいいかなとが思うのですが、どうやって処理
したらいいのかわかりません。
やりたい事をうまく説明出来ているかわかりませんが、ファイル名、
シート名が違う元のデータから、一覧表へ書き込むマクロを組み
たいのです。その際の元データの指定方法を知りたい or 一時的
に名前を変えて処理する方法を知りたいです。
一覧表へ書込みをした後にメールで添付してその元データ
(”あるセル”にファイル名変更したもの)を送り返したいのですが、
メールへ添付する事までマクロで出来ると助かります。マクロで
そこまで出来ますか?これも合わせて教えていただけたらと思います。
つたない説明ですみませんが、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
オブジェクトの指定方法はいろいろ用意されています。
目的に応じて使いやすい方法で指定すればよいでしょう。Worksheetを例にすると
シート名で指定:Worksheets("シート名") シート名は変数でも可
インデックス:Worksheets(index) インデックスは数値(変数も可)
Worksheets.Item(index)も同様 名前指定も可
(インデックスだとシートの見出し順となります)
オブジェクト名:(シートの)オブジェクト名 (例:Sheet1←シート名とは別)
特定のシート:ActiveSheet
などです。
Workbookもほとんど同様ですが、特定のブックの指定ではActiveWorkbookのほかにThisWorkbookなどもあります。
さらにこれらのオブジェクトを効率よく使い分けるために、No1様もおっしゃっているように変数に代入しておけば、仮のシート名(?)などは不要でしょう。
nam="元シート"
Set Src=Worksheets(nam)
Set Dst=Worksheets(1)
・・・・・・・・・
Dst.Cells(1,1).value=Src.Cells(1,10).value
などといった使い方をしているのが通常のようです。
回答ありがとうございます。
変数にActiveWorkbookやThisWorkbookなども入れられる
のですね?なんとかやりたい事が出来そうです。ありが
とうございました。
No.1
- 回答日時:
変数を使って処理してください。
Dim Src As Workbook 'コピー元
Dim Dst As Workbook '一覧(コピー先)
Set Src = Workbooks.Open("C:\~")
Set Dst = Workbooks.Add '新規作成の場合
'= = = コピー作業 = = =
Dst.SaveAs "C:\~" '「名前を付けて保存」と同じ操作
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
Excelマクロのエラーを解決した...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
excelのマクロで該当処理できな...
-
【Excel VBA】Worksheets().Act...
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
VBAで、シート間の転記するコー...
-
ブック名、シート名を他のモジ...
-
シートが保護されている状態で...
-
エクセルのマクロについて教え...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
VBA 最終行まで数式をコピーする
-
【ExcelVBA】動的にボタン、ボ...
-
【VBA】指定した検索条件に一致...
-
VBA 検索して一致したセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報