ありがとうございます
・ 特定のマクロ有効ブック (*.xlsm) だけで起こる現象か
>すべてのブックで起こります。
・ VBA を実行せずに印刷した場合はどうか
>普通通り印刷できます
・ Excel ブックを閉じようとした時にエラーメッセージは出るか (発生する場合は全文を書き込んでください)
>エラーメッセージは出ません
×ボタンだけ使用不可になっています。
×ボタンはグレー表示にはなっていません。
最小化、元に戻すボタンは正常に動きます。
保存している別のブックを開いて閉じると、問題のブックも閉じられます。
昨日色々やってみた結果、
印刷字が原因ではなく、シートにプロテクトをかけているのが原因かもしれません。
プロテクト、アンプロテクトの記述場所をいろいろ変えてやってみましたが上手くいきません。
シートの保護は「ロックされたセル範囲の選択」のチェックを外しています。
シートの保護を掛けているシートは
入力用シートとメイン画面のシートです。
少し長いですが、コードを掲載します。
よろしくお願いします。
Private Sub CommandButton1_Click()
'-------------------------------------------
'印刷
'-------------------------------------------
Dim WsN As Worksheet '入力用
Dim WsM As Worksheet 'メイン画面用
Dim WsI_1 As Worksheet '印刷用
Dim WsI_2 As Worksheet '印刷用
Dim WsI_3 As Worksheet '印刷用
Dim myNo As Long '最終No'印刷用
Dim myPrint As Long '印刷枚数'印刷用
Dim f As Long
Dim ff As Long '印刷用
Dim c As Long '印刷用
Dim pc As Long '印刷枚数番号'印刷用
Dim LrowN As Long
Const Hani As Long = 30 '印刷用
Set WsN = Worksheets("入力")
Set WsM = Worksheets("メイン")
Set WsI_1 = Worksheets("印刷-1")
Set WsI_2 = Worksheets("印刷-2")
Set WsI_3 = Worksheets("印刷-3")
myNo = WsN.Cells(Rows.Count, 2).End(xlUp).Row - 13
WsN.Unprotect
WsM.Unprotect
Application.ScreenUpdating = False
For ff = 1 To 2
c = 0 '印刷番号
pc = 2 '2部印刷
Select Case myNo
Case Is <= 25
With WsI_1
.Range("B16:H40").Value = WsN.Range("C14:I38").Value
.Range("G41:G43").Value = WsN.Range("H9:H11").Value
.Range("D12").Value = .Range("G43").Value
DoEvents
.Visible = True
.PrintOut
.Visible = xlSheetVeryHidden
.DisplayPageBreaks = False
DoEvents
End With
Case Is >= 26
With WsI_2
.Range("B16:H40").Value = WsN.Range("C14:I38").Value
.Range("D12").Value = .Range("G43").Value
myPrint = NumberPrint(myNo)
.Range("H43").Value = 1 '印刷番号
DoEvents
.Visible = True
.PrintOut
.Visible = xlSheetVeryHidden
.DisplayPageBreaks = False
DoEvents
End With
With WsI_3
For f = 1 To myPrint
WsN.Range(WsN.Cells(39 + c, 3), WsN.Cells(68 + c, 9)).Copy
.Range("B5").PasteSpecial xlPasteValues
.Range("H39").Value = pc
If f = myPrint Then
'罫線
.Range("E35:G35, E36:G36, E37:G37").Borders(xlEdgeBottom).LineStyle = xlContinuous
'見出し
.Range("E35").Value = "合 計 金 額"
.Range("E36").Value = "調 整 金 額"
.Range("E37").Value = "請 求 金 額"
'金額
.Range("G35:G37").Value = WsN.Range("H9:H11").Value
End If
DoEvents
.Visible = True
.PrintOut
.Visible = xlSheetVeryHidden
.DisplayPageBreaks = False
DoEvents
c = c + Hani
pc = pc + 1
Next
End With
End Select
'-------------------------------------
'罫線等クリア
With WsI_3
.Range("H39,H35:G37").ClearContents
.Range("E35:G35").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
.Range("E36:G36").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
.Range("E37:G37").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
End With
Next
'シートクリア
With WsI_1
.Range("B16:H40,G41:G43,H43,H2:H3,C5:D5,D12:E13,F13").ClearContents
End With
With WsI_2
.Range("B16:H40,G41:G43:H2:H3,C5:D5,D12:E13,F13,H43").ClearContents
End With
With WsI_3
.Range("B5:H34,H39").ClearContents
End With
With WsN
.Range("C5:I5,D9:D11,H9:H10").ClearContents
LrowN = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("B14:I" & CStr(LrowN)).ClearContents
End With
With WsM
.Range("D5:D8").ClearContents
.Visible = True
.Activate
.Range("D5").Select
End With
WsM.Protect
WsN.Protect
WsN.Visible = xlSheetVeryHidden
Application.ScreenUpdating = True
Set WsN = Nothing
Set WsM = Nothing
Set WsI_1 = Nothing
Set WsI_2 = Nothing
Set WsI_3 = Nothing
Unload Me
End Sub