- ベストアンサー
エクセルのマクロについて
エクセル97でマクロを組んで下記作業を行いたいと考えていますが(実際にやりたい事から抜粋した内容です)、不具合が起こっています。 ~やりたい事~ コマンドボタンを押すとあるシートのセルをコピーして、違うシートに貼り付ける。 ~不具合内容~ (1)普通にマクロを実行すると問題ないが、(2)コマンドボタンを使用するとエラーが起こる。 エラー内容は、 「実行時エラー'1004' RangeクラスのSelectメソッドが失敗しました。」 と言う内容です。 ~(1)のVB表記~ Sub Macro1() Sheets("sheet1").Select Range("A1").Select Selection.Copy Sheets("sheet2").Select Range("A1").Select ActiveSheet.Paste End Sub ~(2)のVB表記~ Private Sub CommandButton1_Click() Sheets("sheet1").Select Range("A1").Select (←ここでエラーが発生します) Selection.Copy Sheets("sheet2").Select Range("A1").Select ActiveSheet.Paste End Sub ~質問事項~ 1)(2)の表記の何が原因でエラーが起こっているのでしょうか? 2)エラーが起きない為にはどのようにしたら良いでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sheet内では Private Sub CommandButton1_Click() Call copy_paste End Sub とし、Module内で Public Sub copy_paste() Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste End Sub では?
その他の回答 (3)
- jindon
- ベストアンサー率43% (50/116)
#2です。 当然、 Destination:=Sheets("Sheet2").Range("A1") です。
お礼
ありがとうございました。
- jindon
- ベストアンサー率43% (50/116)
Select しない方法です。 Private Sub CommandButton1_Click() Sheets("Sheet1").Range("A1").Copy _ Destination:=Sheets("Sheet2").Range("H1") End Sub
お礼
どうもありがとうございました。 エラーにならずに実行する事ができ、本当に助かりました。 活用させて頂きます。
- hisako27
- ベストアンサー率9% (10/104)
1:Private Sub CommandButton1_Click() 2:Sheets("sheet1").Select 3:Range("A1").Select 4:Selection.Copy 5:Sheets("sheet2").Select 6:Range("A1").Select 7:ActiveSheet.Paste 8:End Sub 質問内容で試してみたら 6行目でエラーになりましたよ? その対策として Sheets("sheet2").Range("A1").Select としたところ正常にコピーされましたが・・・?
お礼
すみません。 なぜか私の場合、表記を直してもエラーになりました。
お礼
どうもありがとうございました。 呼び出す方法は初めて知り、本当に助かりました。 活用させて頂きます。