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

解決済みの質問

VBAでコピーした時コピー元のシートをアクティブ等

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

下記で御指導いただいたばかりです。
http://okwave.jp/qa/q8787962.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

投稿日時 - 2014-10-13 10:24:59

QNo.8788789

すぐに回答ほしいです

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

最後の End subの直前にでも
Sheets("元本").Select
を挿入することで1は解決するでしょう。

でも2の方は再現できませんでしたのでわかりません。

投稿日時 - 2014-10-13 10:44:02

お礼

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

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

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

投稿日時 - 2014-10-13 13:15:44

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

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

回答(2)

ANo.2

>「元本」シートがいつもアクティブになるようにしたいのですが。
エクセルの仕様でコピーされたシートがアクティブになりますので
コピー後、>「元本」シートをアクティブにすれば良いでしょう
>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

投稿日時 - 2014-10-13 10:47:57

お礼

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

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

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

投稿日時 - 2014-10-13 13:17:01

あなたにオススメの質問