今回も OneDriveのフォルダにある 郵便物管理 のファイルを使いますので
ファイルを右クリックして ダウンロード して確認してください。...
システムの細かい部分を説明します。
テクニック 1
ユーザーフォームを右上の ×マークで閉じれなくする。
勝手にユーザーフォームを閉じれなくするためには
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '×でフォームを閉じさせない
If CloseMode = vbFormControlMenu Then 'もし、×ボタンを押して閉じようとしていたら
MsgBox "終了のコードを入力してください"
Cancel = True
End If
End Sub

 

をユーザーフォームのモジュールに追加します
閉じる時に CloseMode があって、 ×マークで閉じようとしていたら
Cancel = True で操作をなかったことにします。

テクニック 2
ユーザーフォームから 印刷画面(PrintPreview)を実行する際の注意
私も何度も痛い思いをしたので、
User と プリントプレビュー 画面は同時に表示してはいけません。
(両方に操作権?が発生するのでフリーズ状態になります)
そこで
UserFrom3の詳細確認のボタンある様に
Private Sub CommandButton1_Click()
Me.Hide
UserForm1.Hide
Sheets("月次集計").PrintPreview
UserForm1.Show
Unload Me
End Sub

Me.Hide
UserForm1.Hide
先に開いているUserを非表示にしてから
Sheets("月次集計").PrintPreview
とプリントプレビューの画面を実行させます。

実際にシステムを組んでみると
予期しない操作に対するエラー処理の部分が結構
占めていきます。
ここまで進みましたら、あなたは立派なシステム開発者です。
但し、エクセルついてになります。
更に進みたい方は
SQLサーバーなどで勉強をされることをお勧めします。
ネットワーク構築やセキュリティと云う分野だけでも大変な
勉強になります。
ご苦労様でした。これからも頑張ってください。