申請ボタンの内容ですが、相変わらずスクリプトで作ってみました。(式って苦手なんです・・・) Sub Click(Source As Button) On Error Goto errorhandle Dim ws As New notesuiworkspace Dim uidoc As notesuidocument Dim doc As notesdocument Dim tmp Set uidoc = ws.currentdocument Set doc = uidoc.document tmp = doc.getitemvalue("ApprName") If Instr(tmp(0),"申請時に入力") <> 0 Then Msgbox "「承認者リスト編集」ボタンを使用して承認者名を入力してください。",64,"title" Exit Sub End If doc.Action = "Submit" doc.SaveOptions = "1" Call uidoc.save '@ Call uidoc.close 'A Exit Sub errorhandle: Exit Sub End Sub QuerySaveは前と同じです。 どうしてこれで、@Aが回避できるかというと、 まず@で保存が走りますが、その時にQuerySaveに飛びます。 QuerySaveではまず始めにSource.Refreshとしてあるはずです。 その時にInputValidationが評価され、引っかかるとQuerySaveないでエラーが発生してerrorhandleに飛びます。 errorhandle内でcontinue=falseにしてQuerySave終了です。 uidoc.save@でQuerySaveを呼んでcontinue=falseで返ってくるとuidoc.saveの時点でエラーになります。(SaveCancelledというエラー) そのためここでもerrorhandleに飛んでセーブもクローズもしないで処理が終わります。 と、いう事なんですが、何言ってるか分かり難いですか? 今回の方法はOtaさんのアイデアをパくって参考にして作っています。 本当にすごいのはOtaさんですね(私はこのアイデアは思い付きませんでした) プログラムは技術力ではなく発想力だと思っています。 個人的な意見ですが・・・