• 締切済み

(マクロ)特定のセルを変更しようとしたら確認メッセージが出るようにしたい

表題の通りです。 http://oshiete1.goo.ne.jp/qa2534226.html で質問してURLにある回答を頂いたのですが、まだわからないことがありますので教えていただけないでしょうか? (すいませんが少々急いでおります) わからないことは以下の通りです。お願いします。 一点目は >Cells(toku_l, toku_c) = toku1 'デフォルトの値 となっていますがデフォルトの値に戻すのではなく、前回の内容に戻したいのです。 つまり、例えば現在入力規則でリスト1、リスト2、リスト3と3通り選べるようになっています。このときリストが現在リスト2の状態であったときにリスト3を選んだら、本当にこれでいいですかと表示が出てハイを押せばリスト3、いいえを押せばリスト2に戻るようにしたいのです。 教えていただいた方法では常にデフォルトの値になってしまいます。 二点目は、 If Not ((x = toku1) Or (x = toku2) Or (x = toku3)) という箇所ですが、これですとリストにない項目を入力してはじめて then以降が実行される式だと思います。 つまり、リスト2からリスト3に選択したときTHEN以降が実行されないと思うのです。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 前のは一旦、締めたほうがよいですね。 前のものも読んではいたのですが、私は、あえて、マクロにする理由が良く分かりませんでした。入力規則のリストですから、設定条件に合わせて、入力値を排除したほうが早いような気がしました。 こういうことですか? Const KISOKU の部分を適当に直してください。 Private Sub Worksheet_Change(ByVal Target As Range)  Const KISOKU As String = "C2"  '入力規則の設定場所  If Target.Address(0, 0) <> KISOKU Then Exit Sub  Application.EnableEvents = False  If MsgBox("本当にこれでよいのですか?", vbOKCancel) = vbCancel Then   Application.Undo  End If  Application.EnableEvents = True End Sub

関連するQ&A