| 
    
     |  | こんにちは 
 原因は分かりませんが、コードの書き方で、変数の宣言を強制するように
 ツール、オプションで設定しておきましょう。
 
 Option Explicit
 
 Sub 選択した項目の前回登録情報をコピー()
 Dim mSh As Worksheet
 Dim sR As Range
 Dim m  As String
 Dim rc As Variant
 Dim tSh As Worksheet
 
 On Error Resume Next
 Set tSh = Workbooks("151022_同一再稼働支援ツール.xlsm") _
 .Worksheets("登録票")
 On Error GoTo 0
 
 If tSh Is Nothing Then
 MsgBox "151022_同一再稼働支援ツール.xlsmが開かれていないか、" & _
 (Chr(10) & Chr(13)) & _
 "登録票シートが存在しません。" & _
 (Chr(10) & Chr(13)) & _
 "処理を中断します"
 Exit Sub
 End If
 
 Set mSh = ActiveWorkbook.ActiveSheet
 Set sR = Selection
 
 m = "選択しているセルの内容を、前回登録時の情報に書き換えます。"
 m = m & (Chr(10) & Chr(13))
 m = m & "この機能はセルの位置が完全一致している時のみ使用できます。"
 m = m & (Chr(10) & Chr(13))
 m = m & "よろしければ[OK]を押下してください。"
 
 rc = MsgBox(m, vbOKCancel + vbQuestion, "※要注意※")
 
 If rc = vbOK Then
 Workbooks("151022_同一再稼働支援ツール.xlsm") _
 .Worksheets("登録票").Range(sR.Address).Copy sR
 Else
 MsgBox "処理を中断します"
 End If
 
 Application.Calculation = xlCalculationAutomatic
 Application.ScreenUpdating = True
 Application.EnableEvents = True
 
 End Sub
 
 インデントを付けてコードを見やすく。
 
 Application.EnableEvents = True
 
 としてあると言う事はチェンジイベントがあるのですか?
 
 Application.Calculation = xlCalculationAutomatic
 
 の計算実行との順序は大丈夫ですか?
 
 
 |  |