dポイントプレゼントキャンペーン実施中!

いつもお世話になります。
WINDOWS7 EXCELL2010 です。

下記で御指導いただいたばかりです。
http://oshiete.goo.ne.jp/qa/8787962.html

二つ質問があります。

「元本」のシートをコピーした時、コピー先がアクティブになります。
これを「元本」シートがいつもアクティブになるようにしたいのですが。

添付図のように最初にコピーの作業をした時は上手くゆくのですが二回目以降でこのボタンをクリックすると図のようになります。 もう一度クリックすると作動します。
同作業を繰り返すと同現象が発生します。

誠に恐れ入りますが 「1 と 2」の解決方法を御指導いただけないでしょうか。

参考に
Sub SheetCopy()
'
' SheetCopy Macro
' 元本のシートをコピーする
Dim NewSheetName As String

NewSheetName = InputBox("一桁の月及び日でも二桁のMMDD形式で新しいシート名を入力してください")

Sheets("元本").Copy After:=Sheets(1)
Sheets("元本 (2)").Select
Sheets("元本 (2)").Name = NewSheetName
Range("A1").Select
ActiveCell.FormulaR1C1 = NewSheetName
Range("A2").Select

Dim myBut As Object
For Each myBut In ActiveSheet.Buttons
If myBut.Caption = "SheetCopy" Then myBut.Delete
Next
End Sub

「VBAでコピーした時コピー元のシートをア」の質問画像

A 回答 (2件)

最後の End subの直前にでも


Sheets("元本").Select
を挿入することで1は解決するでしょう。

でも2の方は再現できませんでしたのでわかりません。
    • good
    • 0
この回答へのお礼

御回答をありがとうございました。
2 の方は色々試しましたがうまく行かないのであきらめました。

その対策として Ctrl + c で対応することにしました。

お陰様で、
元本 をアクティブにするのは上手くできました。

お礼日時:2014/10/13 13:15

>「元本」シートがいつもアクティブになるようにしたいのですが。


エクセルの仕様でコピーされたシートがアクティブになりますので
コピー後、>「元本」シートをアクティブにすれば良いでしょう
>2 添付図のように最初にコピー・・・
こちらでは、そのような現象は確認できませんでした。
Sub SheetCopy()
  Dim NewSheetName As String
  Dim myBut As Object

  NewSheetName = InputBox("一桁の月及び日でも二桁のMMDD形式で新しいシート名を入力してください")
  Application.ScreenUpdating = False
  Sheets("元本").Copy After:=Sheets(1)
  With ActiveSheet
    .Name = NewSheetName
    .Range("A1").FormulaR1C1 = NewSheetName
    .Range("A2").Select
    For Each myBut In .Buttons
      If myBut.Caption = "SheetCopy" Then myBut.Delete
    Next
  End With
  Sheets("元本").Activate
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

御回答をありがとうございました。
2 の方は色々試しましたがうまく行かないのであきらめました。

その対策として Ctrl + c で対応することにしました。

お陰様で、
元本 をアクティブにするのは上手くできました。

お礼日時:2014/10/13 13:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!