
マクロを保存したブック(シート)にデータをコピーしたいブックのウインドウをActiveにしてセルのコピーをしたいのですが、うまくいきません。下記に例を記載しますのでご教示願います。
1 Dim WBK As Workbook
2 Dim stWBK As String
3 Range("A3").Select 'このシートのA3にブック名があります
4 Selection.Copy
5 stWBK = Clipboard
6 Windows(stWBK)Activate
別のやり方で
stWBK= Range("A3").Select
も試しましたがだめです。
No.3ベストアンサー
- 回答日時:
複数のシートやブックを扱う時は、操作対象としているRangeがどのブックのどのシートであるかを明示しておいた方が、間違いが少なくなります。
ブック名、シート名で指定するなら、
Workbooks("book1.xls").Worksheets("sheet1").Range("○○")
のようになります。(ブックやシート、Rangeなどは変数でも可)
作業中にかならず対象のブックが開いているという前提であれば、
Windows("ブック名").Activate '/←「.」に注意
で対象のブックをアクティブにできます。
ご質問の例でいえば
stWBK = ActiveSheet.Range("A3").Value (またはText)
Windows(stWBK).Activate
で可能ですが、実は、手動での操作と違って、わざわざブックをアクティブにする必要はありません。
セルの値の単純コピーを例にすれば
wb1.sh1.Range("A3") = wb2.sh2.Range("B5")
などとすることで、そのままコピーが可能です。
(Wb1,sh1などは、ブック、シートを示す変数です)
なお、対象とするブックが開いていない場合は、
Workbooks.Open "○○~~~"
などで、ブックを開くところから記述する必要があります。
この回答への補足
ありがとうございます。こちらから質問させてください。 wb1.sh1.Range("A3") = wb2.sh2.Range("B5")
と変数を使った例を参考に下記作成しましたが
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim SH1 As Worksheet
Dim SH2 As Worksheet
Set Wb1 = "bk1.xls" ’ここでエラーになります
Set Wb2 = "bk2.xls" ’以降は動作不明
Set SH1 = "sh1"
Set SH2 = "sh2"
Wb1.SH1.Cells(1, 1).Value = Wb2.SH2.Cells(1, 1).Value
のように変数のセットが分かりません。ご教示願います。
その後自分なりに試して、うまくいきました。
記述を単純化することで全体が見やすくなりました。
今回のご指摘に感謝しています。ありがとうございました。
No.4
- 回答日時:
はじめましてぇ。
難しいことは言えませんが、開いているブックをアクティブにするには、以下の通りで出来るはずです。
コピペして試してみてください。
--------------------------------------------------
Sub Test()
Workbooks(Range("A3").Value).Activate
End Sub
--------------------------------------------------
参考(Sub Test2)以下のコード:
1.対象のブックをアクティブ
2.決まったセルをコピー
3.自ブックをアクティブに
4.自ブックB3セルに値のみ貼付
--------------------------------------------------
Sub Test2()
Workbooks(Range("A3").Value).Activate
ActiveSheet.Range("A1").Copy
With Me
.Activate
.Range("B3").PasteSpecial xlPasteValues
End With
End Sub
--------------------------------------------------
ちなみにブックをアクティブにしなくてもコピーは出来ますよ。
どうでしょう?的を射た回答になっていますか?
No.2
- 回答日時:
>3 Range("A3").Select 'このシートのA3にブック名があります
4 Selection.Copy
ブック名として必要なのはセルA3に入っている、文字列(だけ)でしょう。だからコピーすることはしない。
そういう場合はRange(”A3").Valueを右辺に書くとか、このまま使絵ば良い。
ブックのコピーはどこでやってますか。Selection.Copy
はその役割は出来ません。
ーー
全体に、マクロの記録をとって、その場合は1個別ケースですから
、一般化するには、どこをどうするか考えましたか。
マクロの記録が取れない操作もありますが、それも含めて、マクロの記録ぐらいやってみて質問すべきです。
全体的に質問のコードは、主要なコード部分が無い。コピー貼り付け
とかの部分。
あと「エクセル ブック 複写」などでWEB照会も済まして勉強してから質問のこと。
ありがとうございます。
マクロの記録をとり、複数のブック名を作業ブックの特定セルに列記し
順にブック名(4月勤怠xls、5月勤怠.xls~12月勤怠.xls)を取り出しその中の残業時間を順次作業ブックに貼り付けたいと考えてました。
Range(”A3").Valueを使ってみます。
No.1
- 回答日時:
データをコピーしたいブックのファイル名は、どのように受け渡したいとお考えでしょうか?
この回答への補足
今回は作業ブック(シート)に勤怠表のように月ごとに作成したブック名を特定のセルに記入しておき、順に文字列として取り出し、複数開いたWindowの所定のブックをactiveにし、残業時間等のデータをコピーして月別・人別の表を作成しようとしています。
このときデータコピーのモジュールを一般化し文字列の引数として渡したいと思います。次の段階では月毎のブック内の人別シート名も文字列の引数にしてデータコピーのモジュールをさらに一般化したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
Excelマクロ 該当する値の行番...
-
エクセルのマクロを使ってメー...
-
[Excel]ADODBでNull変換されて...
-
ワイルドカード「*」を使うとう...
-
Excel VBAマクロで複数のファイ...
-
Excel2007VBAファイルの表示に...
-
マクロで最終行を取得したい
-
サーバーに保存したエクセルフ...
-
VBAで別のブックにシートをコピ...
-
EXCEL→CSV形式で別ファイルに保存
-
VBA 二つのブックをうまく扱え...
-
VBScriptで自動リンクONでExcel...
-
ExcelVBA:すでに開かれている...
-
マクロVBA 1シートをまとめ...
-
[Excel VBA] 複数のサブフォル...
-
VBAが止まります。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報