【やりたいこと】
WSHを利用して
1.あるExcelファイル(Aとする)を開く
2.別のExcelファイル(Bとする)を開く
3.Aの特定のシートの特定のセル範囲をコピー
4.Bの特定のシートに、3でコピーしたセル範囲をペースト
5.B上書き保存&閉じる
6.A閉じる
【現状】
以下のようなコードを書いてみたのですが、
ファイルの開閉はできますがコピー&ペーストが
全くできていないようです。
何が問題なのかよくわからず質問させていただきました。
かなり素人なので無駄も多いですが、ぜひご教授願います。
よろしくお願い致します。
-------------------------------------
Set xl1 = Wscript.CreateObject("Excel.Application")
xl1.Visible = false
Set book1 = xl1.WorkBooks.Open(A)
Set mysheet1 = book1.worksheets(特定のシート)
Set xl2 = Wscript.CreateObject("Excel.Application")
xl2.Visible = false
Set book2 = xl2.WorkBooks.Open(B)
Set mysheet2 = book2.worksheets(特定のシート)
mysheet1.Activate
xl1.Range("A1").CurrentRegion.Select
xl1.Selection.Copy
mysheet2.Activate
xl2.Range("A1").Select
xl2.Selection.Pastespecial
'ファイルクローズ
book2.Close false
xl2.Quit
set mysheet2 = Nothing
set book2 = Nothing
Set xl2 = Nothing
book1.Close false
xl1.Quit
set mysheet1 = Nothing
set book1 = Nothing
Set xl1 = Nothing
--------------------------------
No.2ベストアンサー
- 回答日時:
>Set xl1 = Wscript.CreateObject("Excel.Application")
>Set xl2 = Wscript.CreateObject("Excel.Application")
これだとExcelのインスタンスが2つできてしまいます。
2ブックを開くのにExcelを2つ立ち上げる必要はありません。
Set xl1 = Wscript.CreateObject("Excel.Application")
xl1.Visible = false
Set book1 = xl1.WorkBooks.Open(A)
Set mysheet1 = book1.worksheets(特定のシート)
Set book2 = xl1.WorkBooks.Open(B)
Set mysheet2 = book2.worksheets(特定のシート)
・
・
で良いはずです。
No.3
- 回答日時:
>mysheet1.Activate
>xl1.Range("A1").CurrentRegion.Select
>xl1.Selection.Copy
>mysheet2.Activate
>xl2.Range("A1").Select
>xl2.Selection.Pastespecial
ここもNGでしょう。
RangeはSheetに属します。
mysheet1.Activate
mysheet1.Range("A1").CurrentRegion.Select
mysheet1.Selection.Copy
mysheet2.Activate
mysheet2.Range("A1").Select
mysheet2.Selection.Pastespecial
とするか、
mysheet1.Range("A1").CurrentRegion.Copy mysheet2.Range("A1")
だけでも良いと思います。
このあたりはExcelVBA内で検証できるはずです。
No.1
- 回答日時:
最大の原因は、book2を保存してないことです。
book2.save
book2.close
とします。
また、他の注意点として、
Set xl1 = Wscript.CreateObject("Excel.Application")
とした時に、現在のカレントディレクトリは、VBScriptのファイルがあったフォルダとは違う場合があるということです。開くファイルをフルパスで指定します。
あと、xl2は、エクセルを別に起動するというようなことですが、
xl1.WorkBooks.Open(B)
で開けます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
VBA シート名が一致した場合の...
-
【VBA】全シートの計算式を全て...
-
VBA コードを実行すると画面が...
-
Excel-VBAでのファイルの開き方
-
VBAで別ブックのシートを指定し...
-
【マクロ】違うフォルダにある...
-
VBA 実行時エラー 2147024893
-
VBS Bookを閉じるコード
-
エクセルVBAでテキストボックス...
-
vbaでvbaProjectのパスワード解...
-
フォルダ内の全てのファイルに...
-
エクセルのマクロについて教え...
-
ユーザーフォームの切り替えに...
-
VBAで別のブックにシートをコピ...
-
WSHによるExcelのセルコピー&...
-
エクセル共有化のトラブル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBAで別ブックのシートを指定し...
-
Excelのマクロについて教えてく...
-
VBA 別ブックからコピペしたい...
-
Excelのマクロについて教えてく...
-
vbaでvbaProjectのパスワード解...
-
VBA コードを実行すると画面が...
-
【マクロ】アクティブセルにブ...
-
Excelのマクロについて教えてく...
-
VBAで別のブックにシートをコピ...
-
VBS Bookを閉じるコード
-
Excelのマクロについて教えてく...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
ACCESSVBA からExcelの他ブック...
-
vbaで他のブックに転記したい。...
-
【マクロ】違うフォルダにある...
おすすめ情報