
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Private Sub Worksheet_Change(ByVal Target As Range)
toku_l = 1: toku_c = 1 '特定セルの座標
l = Target.Row: c = Target.Column
If (toku_l = l) And (toku_c = c) Then
x = Target.Value
toku1 = 1: toku2 = 2: toku3 = 3 'リストに設定されている値
If Not ((x = toku1) Or (x = toku2) Or (x = toku3)) Then
yn = MsgBox(" 本当に " & x & " でよろしいですか", vbYesNo)
If yn = vbNo Then
Cells(toku_l, toku_c) = toku1 'デフォルトの値
End If
End If
End If
End Sub
---------------------------
特定セルの座標
リストに設定されている値
デフォルトの値
の、3つを現在のシートに合わせて、変えてください
この回答への補足
ありがとうございます。早速試してみました。
ただ二点ほどうまくいかない点があったので追加で教えていただけないでしょうか?
一点目は
>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以降が実行されないと思うのです。
これを解決するためにマクロの本をだいぶ読んだのですが、私の知識不足でどうしても解決方法がわかりません。
つきましては解決方法をご教授願えないでしょうか?
No.1
- 回答日時:
1.まず、新たなシートを追加し、「作業用」というシート名にしてください。
2.数値を入力するシートの見出しを右クリックし、「コードの表示」でVBAの画面を出します。
3.以下のマクロを貼り付けてください。
Private Sub Worksheet_Activate()
Worksheets("作業用").Range("A1").Value = Range("B2").Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "B2" And Target.Value <> Worksheets("作業用").Range("A1").Value Then
Beep
If MsgBox("本当にこれでよろしいですか", vbYesNo + vbQuestion, "確認") = vbNo Then
Target.Value = Worksheets("作業用").Range("A1").Value
End If
Worksheets("作業用").Range("A1").Value = Target.Value
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address(False, False) = "B2" Then
Worksheets("作業用").Range("A1").Value = Target.Value
End If
End Sub
4.上記のマクロの中に3カ所「B2」と出てきますが、それを実際に値を入力するセルの番地に書き換えてください。
これでご希望の動作ができると思います。一応仕組みとしては、
・そのシートが表示されたり、そのセルが選択されたときに、作業用のシートに元の値をコピーして保存しておく。
・そのセルの値が変更されたとき、「これでよろしいですか」というダイアログを出し、「いいえ」を選択したときは、そのセルの内容を保存しておいた元の値に戻す。
ということをやっています。作業用シートを表示したくないときは、作業用シートを選択してから「書式」>「シート」>「表示しない」で非表示にすればいいでしょう。
もしご希望の通りに動かない場合は補足をお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
【Excelで「正弦波」のグラフを...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
尿検査前日に自慰行為した時の...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
エクセルで空白セルを含む列の...
-
MIN関数で空白セルを無視したい...
-
Excel 数値の前の「 ' 」を一括...
-
VLOOKUP関数を使用時、検索する...
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
至急!尿検査前日にオナニーし...
-
風俗店へ行く前のご飯
-
Excel 0目標に対して数字があ...
-
Excel条件付書式(残業45時間以...
-
エクセル指定した範囲からラン...
-
尿検査の前日は自慰控えたほう...
-
ワードのページ番号をもっと下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報