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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
マルチディスプレイを使用していますがexcelマクロが使えない
Visual Basic(VBA)
-
Excelでボタン(フォームコントロール)にマクロ登録するとエラーになる
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックスへ降順に表示す...
-
エクセルマクロ(超初心者)
-
エクセルで品番を入れると、そ...
-
【Excel】列と行の最後尾にジャ...
-
B列の最終行までA列をオート...
-
マクロの「SaveAs」でエラーが...
-
ワイルドカード「*」を使うとう...
-
エクセルVBA intersect colu...
-
【Excel関数】UNIQUE関数で"0"...
-
VBA シートをコピーする際に Co...
-
エクセルで離れた列を選択して...
-
VBAマクロ実行時エラーの修正に...
-
【Excel VBA】書き込み先ブック...
-
Excel UserForm の表示位置
-
VBA 別ブックからコピペしたい...
-
「段」と「行」の違いがよくわ...
-
エクセルVBA 配列からセルに「...
-
【EXCEL-VBA】特定の値の入った...
-
別ブックをダイアログボックス...
-
C# DataGridViewで複数選択した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでオブジェクトが必...
-
Access-VBAでExcelファイ...
-
コンボボックスへ降順に表示す...
-
複数シートを一括で保護を掛け...
-
エクセルのVBAについて教えてく...
-
エクセルを共有にすると、シー...
-
マクロのコマンドボタン《Activ...
-
Excell VBA にて配列に定数を代...
-
エクセルで品番を入れると、そ...
-
VBAでVlookup機能を使うときに...
-
エクセルのマクロ(大量データ...
-
マクロ実行後、画面がちかちか...
-
エクセルのマクロについて 3
-
エクセルマクロ 変数をワーク...
-
マクロ 条件分岐の仕方
-
vbaアニメーションについて
-
別のブックを開く時にシートを...
-
For Each でシートのループ
-
エクセルのVBAの関数について
-
シートのコード(マクロ)で別...
おすすめ情報