現在、次のようなことがやりたくてエクセルのコードを作ってみました。
・データが書かれたエクセルの複数のsheetの特定のセルをコピーして、sheet1にコピーペーストしていきたい。
そこでこのようなコードを書いてみました。
Private Sub Worksheet_Activate()
Sheet4.Select
Range("A16").Copy
Sheet1.Select
Range("U63").Select
Sheet1.Paste
End Sub
とりあえずSheet4のセルA16のデータをSheet1のU63にコピーペーストするようにしてみたのですが、うまくいきません。
この場合のコードの書き方をご教授いただけないでしょうか?
どうぞ、よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
どうしてわざわざWorksheet_Activateを使っているのかご相談で何も説明が無いので、その点の良しあしはタッチしない事にします。
マクロが単純に起動できていない可能性もありますが、(Activateがいいのか他の方法が良いのかは今回のご質問とは本質的に無関係なので)使い勝手で判断してください。
とはいえ、ご質問のマクロの間違いは、worksheet_Activateを使った事に間接的な原因があります。それを使いたいなら、他のシート(今回はシート4)のセルを触る場合には(あなたが書いたマクロのように)「シートを開いてセルを触る」では正しく動作しません。下記のように必ず漏れなく「シート.セル」のように書かないとダメです。
訂正版:
private sub worksheet_Activate()
worksheets("Sheet4").range("A16").copy destination:=worksheets("Sheet1").range("U63")
end sub
一旦別のシートを開いてから、改めてマクロを埋めたシートを開きなおして起動させる。
回答いただきありがとうございます。助かります。
Private Sub Worksheet_Activate()
Worksheets("Sheet4").Range("A16").Copy Destination:=Worksheets("Sheet1").Range("U63")
End Sub
このようにコードしてみて、デバッグでステップインさせたところこのようなエラーが出てきました。
”実行時エラー '9': インデックスが有効範囲にありません。 ”
このようなエラーが出てきて、動作が止まってしまうのですが、解決方法など教えていただけませんでしょうか?
No.5
- 回答日時:
他の方もご指摘されていますが、シート名が誤っている可能性が高いと思います。
「sheet4」という名前のシートを指定してるけど、そんなんないよ!てなエラーメッセージですね。
もしかして、マクロをくんでいるエクセルファイルと、処理したいシートのあるファイルが違うなんてことはないですよね?
この回答への補足
回答頂きありがとうございます。
>Destination:=Worksheets("Sheet1")
>とかのところを、worksheets("正しいシート名")の
>ように記入します。
>正しいシート名とは、エクセル画面で見たときに
>画面の下のシート名タブのところに書いてある名前の事です。
エラーの原因がこの問題だったことに今気づきました。
大変申し訳ありません。
回答頂きありがとうございます。
>もしかして、マクロをくんでいるエクセルファイルと、
>処理したいシートのあるファイルが違うなんてことはないですよね?
これに関しては、ファイルは同一のものです。
Sheet1,Sheet4にはそれぞれ名前はつけていますが、そのままSheet1,Sheet4を使用することはできませんでしょうか?
No.4
- 回答日時:
>このようなエラーが出てきて、動作が止まってしまうのですが、解決方法など教えていただけませんでしょうか?
ご自分のブックのシート名も把握していないのですか?
Worksheets("Sheet4")
とか
Destination:=Worksheets("Sheet1")
とかのところを、worksheets("正しいシート名")のように記入します。
正しいシート名とは、エクセル画面で見たときに画面の下のシート名タブのところに書いてある名前の事です。
それとも元のマクロでも気にはなっていましたが、オブジェクト名でマクロを書く癖が付いているので理解できなかったのでしょうか。
それならそれでも出来ますので、適切に応用してください。
回答頂きありがとうございます。
>Destination:=Worksheets("Sheet1")
>とかのところを、worksheets("正しいシート名")の
>ように記入します。
>正しいシート名とは、エクセル画面で見たときに
>画面の下のシート名タブのところに書いてある名前の事です。
エラーの原因がこの問題だったことに今気づきました。
大変申し訳ありません。
No.3
- 回答日時:
あまり詳しくないですが、これでできると思います。
'(1)シート4にあるA16のセルをコピー
Sheets("Sheet4").Range("A16").Copy
'(2)シート1にあるU63のセルを選択
Sheets("Sheet1").Range("U63").Select
'(3)選択したセルにペースト
ActiveSheet.Paste
(2)と(3)を一緒にしたいと思い、
Sheets("Sheet1").Range("U63").Pasteとしたいと思い試しましたが、これはエラーになってしまいました。
知識が少ないため、その理由は分かりません・・・。
回答いただきありがとうございます。
教えていただいたコードでやってみたのですが、
”実行時エラー '9': インデックスが有効範囲にありません。 ”
このようなエラーが出てきて、動作が止まってしまうのですが、解決方法など教えていただけませんでしょうか?
エクセル2007を使用しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
EXCELでコピーしたグラフのデー...
-
ロックしたセルのコピー&貼り付け
-
シート全体を他のブックのシー...
-
Excelで保護のかかったシートの...
-
Excelで大量の2000個のリストを...
-
ワークシートの行が途中から表...
-
VBA アクティブでないシートの...
-
【エクセル】表から条件に合っ...
-
セルに背景色がある行を別シー...
-
行の挿入ができなくなった
-
シート保護したExcelへの画像貼...
-
コピー&ペーストすると、VLOOK...
-
エクセルのマクロについて教え...
-
Excelのシートを1枚にまとめる...
-
worksheetクラスのcopyメソッド...
-
excelで勝手にテキストボックス...
-
EXCELで複数シート作成後、全シ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルの下部のシートタブの...
-
EXCELでコピーしたグラフのデー...
-
エクセルでセルの書式設定がで...
-
ワークシートの行が途中から表...
-
シート全体を他のブックのシー...
-
ロックしたセルのコピー&貼り付け
-
Excelで大量の2000個のリストを...
-
Excelで保護のかかったシートの...
-
excelで勝手にテキストボックス...
-
エクセルで数式は残したまま他...
-
VBA アクティブでないシートの...
-
【エクセル】数式のセル番地を...
-
【エクセル】表から条件に合っ...
-
シート保護してても並び替えを...
-
行の挿入ができなくなった
-
エクセルで打ち込んだ数字を自...
-
シート保護したExcelへの画像貼...
-
worksheetクラスのcopyメソッド...
-
wordからexcelへ一部のデータを...
おすすめ情報