・・・書いた内容難しかったですか? 今回、てつさんがやろうとしていることは、新規に文書を作成する時に、 同じカテゴリの既存文書から、続きで連番をつける事ですよね。 つまり、新規文書(現在の文書)と同じカテゴリから、最大の番号を 持っている既存文書を取得して、その既存文書の番号に1を足した値 (番号)を、新規文書の番号に設定して保存する。 という処理にすればOKというのは判りますよね? まず、最初に書いたスクリプトでは・・・ 途中まではいいのですが、既存文書より取得した最大の番号を、 現在の文書に設定しています。(保存はしていない) また、既存文書より取得した最大の番号に1を足した値を、その既存文書に 設定して保存していますので、NGになります。 二回目に書いているスクリプトでは・・・ 既存文書より取得した最大の番号に1を足した値を、『未取得の』現在の文書に 設定しているが保存していない。 (実行するとエラーになる筈ですが・・・) 最大の番号を取得するのに使った既存文書は、何の更新もしていないのに、 意味もなく保存している。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Sub Initialize Dim SESSION As New NOTESSESSION Dim DB As NOTESDATABASE Dim view As NOTESVIEW Dim doc As NOTESDOCUMENT Dim WS As New NOTESUIWORKSPACE Dim UIDOC As NOTESUIDOCUMENT Set DB = SESSION.CURRENTDATABASE Set UIDOC = WS.CURRENTDOCUMENT If UIDOC.FieldGetText("UKETUKENO") <> "" then 'UKETUKENO取得済み→終了 Exit Sub End If Select Case UIDOC.FieldGetText("SYURUI") Case "車":RKUBUN="車" Case "バイク":RKUBUN="バイク" Case "自転車":RKUBUN="自転車" End Select Set view = db.GetView("マスター\連番") Set doc = view.GetDocumentByKey("RKUBUN",True) If Not(doc Is Nothing) Then TMP_UKETUKENO = Cint(doc.UKETUKENO(0)) '既存文書(doc)から番号を数値に変換し、取得→TMP_UKETUKENOにセット Call UIDOC.FieldSetText("UKETUKENO",_ Format(TMP_UKETUKENO + 1,"00000")) '番号(TMP_UKETUKENO)に1を足し込み、桁をあわせて、 'UKETUKENOフィールドに設定 Call UIDOC.Save ' 現在の文書を保存 Else '新規のカテゴリとして、"00001"番とする。 Call UIDOC.FieldSetText("UKETUKENO","00001") Call UIDOC.Save ' 現在の文書を保存 End If End Sub −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 一部の処理を変更しましたが、参考にしてください。 それぞれのメソッド等は、オンラインヘルプで確認してください。 尚、このスクリプトは、実行もしていないないし、コンパイルも掛けていないので、 コピペでの流用は、おやめください。(実行できなくても責任もてないので)