| 
    
     |  | ▼ピッポ さん: 
 ▼ピッポ さん:
 
 おはようございます。
 
 コード拝見。
 こちらのテスト確認環境を破棄してしまっていますので稼働確認ができません。
 以下はコードを読んだだけのコメントになります。その点、お含みおきください。
 
 まず、いろいろお考えになって、処理のタイミングなど対応しておられるご努力には
 敬意を表します。
 
 致命的ではないのですが。
 
 NosSheet は 条件に合ったブックのシートのループの中で
 
 For sid = 1 To シート数
 nosSheet = nosSheet + 1         '※追加箇所になります
 
 こうしておられますね。
 つまり、NosSheetの値は、調査したすべてのブックの【シート数】の合計になります。
 
 一方、okBooks も
 
 If i2 = 捺印数 Then okBooks = okBooks + 1 '※追加箇所になります
 i2 = 0                  '※追加箇所になります
 Next
 
 これはシートごとのループの中での処理ですから、名前は okBooks ですけど
 実際には ok だったシート数ですね。
 
 で、最後のメッセージ処理で
 ElseIf nosSheet <> okBooks Then
 rmks = rmks & "(捺印数不合ブック数:" & nosSheet - okBooks & " 件)"  '※追加箇所になります
 
 正確には、ここは、捺印数不合シート数 でしょうね。
 
 あと、ここも、結果的には問題ありませんが、
 i2 を ブックレベルの情報からシートレベルの情報にしたわけですね。
 ですので、上にあるように、チェックが終わったら、Next で次のシートに行く前に
 i2 = 0 でクリアしておられるわけで、これでいいのですが、もう少しスコープを広げて、
 この変数だけをおいかけますと
 
 i2 = 0  '★ ブックレベルの処理
 For sid = 1 To シート数
 '略
 For Each MyOb In fSh.Shapes '
 '略
 Next
 '略
 i2 = 0 '★シートレベルの処理
 Next
 
 こうなっています。
 不具合ではありませんが、
 
 For sid = 1 To シート数
 i2 = 0 '★シートレベルの処理
 '略
 For Each MyOb In fSh.Shapes '
 '略
 Next
 '略
 Next
 
 このような記述が、本来の書き方なのかなと思います。
 
 
 |  |