• ベストアンサー

エクセル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

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

  • ベストアンサー
回答No.2

予期しないエラーを避けるため シートを直接選択したらどうでしょうか 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

smorgas030
質問者

お礼

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

その他の回答 (1)

  • kirara77
  • ベストアンサー率25% (117/464)
回答No.1

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

smorgas030
質問者

お礼

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