いつもお世話になります。
WIN10 エクセル2013 です。
例えば、
何等の原因で間違いか故意かでセルをアクティブにしたとき、
下記のマクロで
入力済みです。
修正しますか?
「はい」 「いいえ」
のメッセージボックスが表示されます。
修正したいときは 「はい」をクリックするとメッセージボックスが
消えてよいのですが
修正しないときは 「いいえ」をクリックすると
例えば参考図のE8アクティブとき上の「いいえ」ボタンでは参考図のE12の空白まで「いいえ」ボタンを繰り返し押さなければなりません。
E8のセルを修正しないときは「いいえ」ボタンを押したら、
MsgBoxが消えるようにしたいので下記のマクロをどのようにすればいいかご教授いただけませんでしょうか。
参考のマクロです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'この行から//
If Intersect(Target, Range("E6:AH20")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
If MsgBox("入力済みです。" & vbCrLf & "修正しますか?", vbYesNo) = vbNo Then
.Offset(1).Select
End If
End If
End With
End Sub 'この行まで//
No.1ベストアンサー
- 回答日時:
こんにちは!
前回投稿した者です。
実は投稿後質問文にあるようなことが気になっていました。
↓のコードに変更してみてください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
If MsgBox("入力済みです。" & vbCrLf & "修正しますか?", vbYesNo) = vbNo Then
If .Offset(1) = "" Then
.Offset(1).Select
Else
.End(xlDown).Offset(1).Select
End If
End If
End If
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
tom04様
お久しぶりです。
がんばっていますが中々一人前になりません。
実はこのマクロの構文は tom04さんがご回答されていたものを引用させていただきました。
If .Offset(1) = "" Then
End If
を加えた構文で見事できました。
本当にありがとうございます。
一層精進いたしますので今後ともご協力の程よろしくお願いいたします。
No.2
- 回答日時:
以下のように、イベントを止めればよいと思います。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("E6:AH20")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
If MsgBox("入力済みです。" & vbCrLf & "修正しますか?", vbYesNo) = vbNo Then
Application.EnableEvents = False '←ここ
.Offset(1).Select
Application.EnableEvents = True '←ここ
End If
End If
End With
End Sub
早速ご回答誠にありがとうございます。
上手くできました。
これからのために十分参考にさせていただきます。
今後ともご指導賜りますようよろししくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tera term マクロのinputbox
-
関数を使った日時の自動入力
-
エクセル☆セルに入力必須の制限...
-
エクセルでの現在時刻入力
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
-
エクセルの計算式でコンマを付...
-
EXCELで縦の行全てに一括して文...
-
Wordの差し込み印刷で空白行が...
-
名簿の漢字名を関数で半角カナ...
-
エクセル 数式の無効化
-
セル上に表示された見かけ上の...
-
エクセル 印刷範囲外を非表示...
-
エクセルで「-3E+06」と...
-
エクセルでハイパーリンクのコピー
-
LINEのこの空白ってどんな意味...
-
VBA Private Sub Worksheet_Cha...
-
16桁以上の「0」に変換されてし...
-
エクセルでleft関数の結果が表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tera term マクロのinputbox
-
漢字→ひらがな 一括変換
-
関数を使った日時の自動入力
-
エクセルにペーストしたときの...
-
エクセルで保護を自動に行う設定
-
エクセル_日付けの自動入力
-
エクセルでの現在時刻入力
-
エクセルでHTML情報を無視したい
-
キーボード、マウス操作を自動...
-
エクセル☆セルに入力必須の制限...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
-
LINEのこの空白ってどんな意味...
-
エクセルの計算式でコンマを付...
-
エクセルでleft関数の結果が表...
-
Excelのテーブル上のセルの保護...
-
名簿の漢字名を関数で半角カナ...
-
Wordの差し込み印刷で空白行が...
-
EXCEL 連動したドロップダウン...
おすすめ情報