• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAを使って、エクセル直接入力を確認)

エクセルVBAを使って、エクセル直接入力を確認

このQ&Aのポイント
  • エクセルに直接入力したら、本当に変更しますか?エクセルVBAを使って確認する方法をご教授ください。
  • エクセルVBAを使用して、直接入力した内容を確認する方法を知りたいです。具体的には、「本当に変更していいですか?」というメッセージボックスを表示する方法です。
  • エクセルVBAを使って、エクセルに直接入力した後に、変更を確認する方法を教えてください。入力した内容を確認してから変更するかどうかをユーザーに選択させたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

つぎでいいのではないでしょうか。 VbNoで変更しません。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False dim resp as integer resp = MsgBox("本当に変更するのかい", vbYesNo) If resp = vbNo Then Application.Undo End If Application.EnableEvents = True End Sub

iwakirin
質問者

お礼

ありがとうございました。 ちゃんと動きました。 本当にたすかりました。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

VBAを使わなくとも全く同様のことができる方法があります。 セルへの入力で何かを入力しようとすれば注意を出す方法です。 注意を出したいセルの範囲を選択してからエクセル2010でしたら「データ」タブの「データの入力規則」をクリックします。 表示の画面の「設定」タブでは入力値の種類で「ユーザー設定」を選択し、数式の窓には =A1<>A1 などと式を入力します。 その上で同じ画面で「エラーメッセージ」タブをクリックします。 スタイルの窓では「注意」を選択し、エラーメッセージの窓には「本当に変更してもいいですか?」などと入力してOKします。 これでお望みの操作ができるようになります。

iwakirin
質問者

お礼

ありがとうございます。まさか、VBAを使わなくてできるとは! 目からうろこでした。 この回答をいただいてから、エクセルでできることは、エクセルで設定したほうが、 動作が軽くなるのでは?と思い、エクセルできることを探しています。 ただ、数式はセルの数だけ、設定していかないといけないのでしょうか? B1のセルも同じようにしたかったら、 =B1<>B1 を入力していく? 実は、100個ぐらい品物の数がありますので、一気にできることがあれば、使えるのですが、 ちょっとわからなかったので。また、地道に調べていこうと思います。 でも、エクセルでできるという、考え方はとてもありがたく、役立ちました。 こちらも、ベストアンサーに選びたかったのですが、 一応、VBAということで。本当にすいません。 でも、助かっています。 ありがとうございました。

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

ざっくりこんな感じ。 ワークシートのところへ貼り付けてみてください。 Private aaa As String Private Sub Worksheet_Change(ByVal Target As Range) Dim ret As Integer If Cells(Target.Row, Target.Column) <> aaa Then ret = MsgBox(aaa, vbOKCancel) If ret = vbCancel Then Cells(Target.Row, Target.Column).Value = aaa End If End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) aaa = Cells(Target.Row, Target.Column).Value End Sub 説明: Worksheet_SelectionChangeで、aaaという変数にセルの値を保存しておいて Worksheet_Changeでキャンセルなら、aaaという変数から戻す。 ただし、ファイルを開いた直後にカーソルがいるセルを変更するときは、 Worksheet_SelectionChangeは動いていないかも。 動いていないなら、worksheet_activateか他のイベントで、selectされているセルの値を aaaへ入れておかないとダメ、かも。 (未確認です。確認してみてください。・・・わからないようでしたら、こちらで調べてみますけど。)

iwakirin
質問者

お礼

回答ありがとうございました。 試してみましたが、言われている通りに、目的のセルからずれてしまうことがありました。 それを直す方法は私ではわかりませんでした。 No.2の方の方法を採用させていただこうと思います。 でも、こんなにしっかり考えていたいて、ありがとうございました。

関連するQ&A

専門家に質問してみよう