- ベストアンサー
ボタン操作で元の画面から移動してしまう
マクロで下記の記録で操作しております。 別シートにフォームコントロールで追加のボタンをつくって操作したところ コピーしたシートへ画面が移ってしまいます。 どのように追加記録したらいいかお教え下さい。 VBAは初心者です。 Sub シートコピーして追加() myNumber = Worksheets.Count Sheets("マスター").Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = myNumber - 2 End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これでどうですか?追加したのは、1行目、2行目、最後の行です。 Sub シートコピーして追加() Dim myActiveSheet As String myActiveSheet = ActiveSheet.Name myNumber = Worksheets.Count Sheets("マスター").Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = myNumber - 2 Worksheets(myActiveSheet).Activate End Sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
「シートを追加(新規・複写)した」ら,追加されたシートが必ずアクティブになります。 なのでご相談のことをしたいときは,そうなる前提の元に「元のシート」を開き直す操作を追加します。 例えば: sub macro1() dim w as worksheet set w = activesheet worksheets("マスター").copy after:=worksheets(worksheets.count) activesheet.name = worksheets.count - 3 w.select end sub などのように。 さらに言うなら,マクロボタンが特定の例えば「最初のシート」という名前のシートに置いてあってそこからからしか作動しないことが自明なら, sub macro2() worksheets("マスター").copy after:=worksheets(worksheets.count) activesheet.name = worksheets.count - 3 worksheets("最初のシート").select end sub と,所定のシートを開き直すだけのことです。 #どこかで見たご質問内容だと思ったら,昨日のご相談でしたね。ホッポラカシになっていますが。 ブックを使い続ける内にシートの増減を勝手にやってしまうと,今のあなたのマクロでは収拾が付かなくなるので注意してください。