
1つのファイル(ブック)の中に2枚のシート(aとb)があり、「シートaのセル(a5)の値をコピーし、シートbのセル(b7)に貼り付ける」 という簡単なマクロを作り、シートb上にマクロボタンを設定しました。
シートを跨いで値をコピペするというものです。
《フォームコントロールの ボタン》にコードを設定し実行すると想定通りに動くのですが、《ActiveXコントロールのコマンドボタン》にコードを記述して設定した場合はエラーとなってしまいます。
エラー表示は下記の通りです。
実行時エラー’1004’:
Range クラスの Select メソッドが失敗しました。
マクロ用ボタンとしては、色を変えられる等、自由度が高い《ActiveXコントロールのコマンドボタン》の方を使いたいのですが、上記エラーになる原因と解決方法をご教示いただけませんでしょうか。
尚、図形にマクロを登録した場合は、想定通りに動きます。
また、シートを跨がず、同じシート上でのセル値のコピペの場合は、問題なく動きます。
OS Win10
Excel Microsoft 365 (2016)
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
こんにちは
すでに解決されていると思いますが、
ActiveXコントロールのコマンドボタンのコードははシートモジュールに記されます
>Range("A5").Select ← この部分が黄色に色付けになっています。
からSheets("シートb")にボタンを設置した事が想像できます。
シートモジュールでRangeはシートオブジェクトが省略されている場合
書かれているシートオブジェクトが省略されています。
(標準モジュールの場合ActiveSheet)
なので
Sheets("シートa").Select
Range("A5").Select
シートaからシートbのA5セルを参照する事になり見つけられないので
1004となります。
なので
Sheets("シートa").Select
Sheets("シートa").Range("A5").Select
又は
Sheets("シートa").Select
ActiveSheet.Range("A5").Select
とすればコードは実行されると思います。
Sheets("シートa")にActiveXコントロールのコマンドボタンを設置した場合は、
最後の Range("A1").Select で同様の原因でエラーが返されると思います
すでに回答にあるように値参照(代入)で良ければ、
同範囲.Value=同範囲.Valueとするのが良いと思います。また、自動記録で作成したマクロコードは初めにSelectとSelectionなどを判り易く加工するのが良いと思います。慣れると簡単です。さらにオブジェクトでまとめるなども加工のテクニックですね。
独学なので間違った情報が含まれているかもしれません。
Qchan1962さん
ご丁寧にご説明いただきありがとうございます。
>シートaからシートbのA5セルを参照する事になり見つけられないので
1004となります。
ご教示いただいたように、改めてシート名を明示すると、想定通りに実行できました。
Sheets("シートa").Select
Sheets("シートa").Range("A5").Select
大変勉強になりました。
ありがとうございました。
No.3
- 回答日時:
こんにちは
ActivateやSelectメソッドはいろいろと面倒なので、省くようにするのが良いでしょう。
例えば、以下のように変えたら動作しませんか?
Private Sub CommandButton1_Click()
Worksheets("シートb").Cells(Rows.Count, 5).End(xlUp).Offset(1).Value = _
Worksheets("シートa").Range("A5").Value
End Sub
fujillinさん
ご回答ありがとうございます。
ご教示いただきましたコードで、思い通りの動作ができました!
コピー → 貼り付けするのでなく、直接 値を代入するということでしょうか。
簡潔に記述できるのですね。
ありがとうございました。
No.2
- 回答日時:
こんばんは。
推測ですが、ボタンがSelectされている状態で、セル関係のプログラムを
実行しようとして、エラーになっているとか?
Msgbox Selection.Name で何が表示されるでしょうか?
mygoonicknameさん
早速のご連絡ありがとうございます。
>ボタンがSelectされている状態で、セル関係のプログラムを実行
開発タブの「デザインモード」はOFF状態で、ボタンはSelectされていないと思います。
>Msgbox Selection.Name で何が表示されるでしょうか?
すみません。初心者なもので、仰っている意味がよくわかりません。
マクロボタンを押下直後に表示されるエラー表示は、質問に書きましたように下記です。そのことでしょうか?
実行時エラー’1004’:
Range クラスの Select メソッドが失敗しました。
上記エラー表示ウィンド?にある、「デバッグ」ボタンを押すと、実際のコードには、
Range("A5").Select ← この部分が黄色に色付けになっています。
No.1
- 回答日時:
どんなコードを書いたんですか?
bonaronさん
早速のご連絡ありがとうございます。
コードは下記の通りです。
関数(合計)のセルをコピーし、別シートに 値だけ貼り付けるものです。
Private Sub CommandButton1_Click()
Sheets("シートa").Select
Range("A5").Select
Selection.Copy
Sheets("シートb").Select
ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでオブジェクトが必...
-
エクセルマクロ(超初心者)
-
マクロ実行後、画面がちかちか...
-
エクセルのVBAについて教えてく...
-
Excelに関数使用を調べる方法
-
コンボボックスへ降順に表示す...
-
エクセルで品番を入れると、そ...
-
マクロの「SaveAs」でエラーが...
-
「段」と「行」の違いがよくわ...
-
Excelで、あるセルの値に応じて...
-
VBA 別ブックからコピペしたい...
-
VBAマクロ実行時エラーの修正に...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで離れた列を選択して...
-
結合されたセルをプルダウンの...
-
特定の文字がある行以外を削除...
-
B列の最終行までA列をオート...
-
Excel VBAでのWorksheet_Change...
-
URLのリンク切れをマクロを使っ...
-
マクロ1があります。 A1のセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAについて教えてく...
-
Access-VBAでExcelファイ...
-
エクセルマクロ(超初心者)
-
エクセルVBAでオブジェクトが必...
-
コンボボックスへ降順に表示す...
-
複数シートを一括で保護を掛け...
-
エクセルを共有にすると、シー...
-
エクセルで品番を入れると、そ...
-
VBAでVlookup機能を使うときに...
-
マクロのコマンドボタン《Activ...
-
Excell VBA にて配列に定数を代...
-
マクロ実行後、画面がちかちか...
-
Excelに関数使用を調べる方法
-
エクセル マクロについて、 Inp...
-
エクセルの図形(線)の情報
-
エクセルVBA 別シートの最終セ...
-
エクセルマクロ 変数をワーク...
-
「段」と「行」の違いがよくわ...
-
マクロの「SaveAs」でエラーが...
-
別ブックをダイアログボックス...
おすすめ情報