[[20141020125418]] 『終了(上書き)時に確認マクロ』(minoru) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『終了(上書き)時に確認マクロ』(minoru)

お世話になります。

同一形式のシートが12シート1年分あります。

毎月各種の数値を入力後、入力ミスがなければ
D11セルとS11セル D24セルとS24セルの数値は同じになります。

上書き保存や終了時に、各セル値を確認して相違していれば、
エラーメッセージを表示、合致していればそのまま上書きや終了
する。

過去ログを検索している時間がなく、あまり調べていませんが、
上記のコードをご教授願います。

< 使用 Excel:Excel2013、使用 OS:WindowsXP >


 こんな感じですか?
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Dim SH As Worksheet
        Dim a, b, msg As String
        For Each SH In Sheets
            a = SH.Range("D11").Value: b = SH.Range("S11").Value
            If a <> b Then msg = msg & SH.Name & "シート: [D11]=" & a & " [S11]=" & b & vbNewLine
            a = SH.Range("D24").Value: b = SH.Range("S24").Value
            If a <> b Then msg = msg & SH.Name & "シート: [D24]=" & a & " [S24]=" & b & vbNewLine
        Next SH
        If msg <> "" Then
            MsgBox msg & "に相違があります。 ※このブックは保存されていません"
            Cancel = True
        End If
    End Sub

(稲葉) 2014/10/20(月) 15:47


稲葉

早々の回答ありがとうございます。
思っていたことができ助かりました。
標準ジュールとブックモジュールの区分は別の機会に学習します。

まとめのシートやその他のシートを追加予定です。
月のシートのみ確認するようにSHの繰り返しを制限するには
どのようにすればよいのでしょうか?
月のシート名は4月から3月が連続で並んでいます。

後出しで恐縮ですが、よろしくお願いします。

(minoru) 2014/10/20(月) 22:32


 Sheetの名前を調べてIFで分岐してはいかがですか?
 そのくらいは調べられますよね?
(稲葉) 2014/10/20(月) 23:32

稲葉様 

お世話になります。
なんとなく判りますのでトライしてみます。

ありがとうございます。

(minoru) 2014/10/21(火) 12:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.