|
こんにちは
原因は分かりませんが、コードの書き方で、変数の宣言を強制するように
ツール、オプションで設定しておきましょう。
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
の計算実行との順序は大丈夫ですか?
|
|