こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでボタンを作ったシートとVBAを実行するシートを変えたい

シート1にボタンを作成し、
そのボタンを押すと実行するVBAを作成しました。
そこで、VBAを実行するシートの指定はできるのでしょうか。
例えば、ボタンを押すと、
10行から20行まではシート2で実行させ、
30行から40行まではシート3で実行させたいと考えています。
可能でしょうか。
どうぞ宜しくお願いします。


***********************************************
作成したVBA。ボタンはシート1にあります。
***********************************************

Private Sub CommandButton1_Click()


***********************************************
ここからはシート2で実行させたい
***********************************************
Range("E2").Select
ActiveCell.FormulaR1C1 = "10"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E101"), Type:=xlFillDefault
Range("E2:E101").Select


***********************************************
ここからはシート3で実行させたい
***********************************************
Range("A2").Select
ActiveCell.FormulaR1C1 = "100"
Range("A2").Select
Selection.AutoFill Destination:=Range("E2:E101"), Type:=xlFillDefault
Range("A2:A101").Select

End Sub

投稿日時 - 2007-09-06 18:46:32

QNo.3321240

困ってます

質問者が選んだベストアンサー

予期しないエラーを避けるため
シートを直接選択したらどうでしょうか

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

***********************************************
ここからはシート2で実行させたい
***********************************************
Sheets("Sheet2").Select

Range("E2").Select
ActiveCell.FormulaR1C1 = "10"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E101"), Type:=xlFillDefault
Range("E2:E101").Select


***********************************************
ここからはシート3で実行させたい
***********************************************

Sheets("Sheet3").Select

Range("A2").Select
ActiveCell.FormulaR1C1 = "100"
Range("A2").Select
Selection.AutoFill Destination:=Range("E2:E101"), Type:=xlFillDefault
Range("A2:A101").Select

Sheets("Sheet1").Select
Application.ScreenUpdating = True

End Sub

投稿日時 - 2007-09-07 11:22:40

お礼

回答ありがとうございます。
教えていただいたとおりにやったらできました。
ありがとうござました。

投稿日時 - 2007-09-19 15:29:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

初めまして。
それぞれのシートで実行したいと言う意味は、指定している『Range』指定のセル位置が、各シートのと言う意味ですよね。
それであれば、シート2に設定する記述の『Range』部分の頭に、『Sheet2.Range("E2").Select』のように指定すれば良いですよ。
因みに、シート3の部分であれば、『Sheet3.Range("A2").Select』とかになります。
その他の『Range』指定のところも同じように指定してください。

投稿日時 - 2007-09-06 19:06:01

お礼

回答ありがとうございます。
教えていただいたとおりにやったらできました。
ありがとうござました。

投稿日時 - 2007-09-19 15:29:05

あなたにオススメの質問