![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
昨日、エクセルVBAで、隣のセルにマクロを実行した日付けを自動入力する方法を質問した者ですが、またまた教えて下さい!
こちらで教えてもらい、昨日の質問は解決したのですが、自動入力した箇所(例えばa1からb1)を消した場合、エラーに、なってしまい、その後マクロが起動しません。
そこでエラーを回避する方法を教えて下さい!
入力してあるコードは
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Application.EnableEvents = False
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Date
End If
Application.EnableEvents = True
End Sub
どうか、よろしくお願います!
No.1ベストアンサー
- 回答日時:
おそらくですが、複数のセルを選択してDELETEキーを押されたのではないかと想定します。
記載のマクロだと、複数選択の場合にColumnやRowと言ったRangeプロパティに関するデータの保存方法が変わりますので、参照するプロパティに正常な値が入っていないためのエラーです。上記を解決するためには
If Target.Column <> 1 Then Exit Sub
の前に
If Selection.Count > 1 Then Exit Sub
を挿入してください。
おそらくいけると思いますが...
また、現在マクロ停止中となっているハズです。そのため以降の処理が一切行われなくなっています。実行タブのリセットを押して処理を停止してください。ツールバーが表示されているなら■ボタンでも構いません
No.2
- 回答日時:
こんにちは
No1もご指摘なさっていますが、原因はおそらく複数セルが変更される場合への対応を省いていることでしょうか。
コピペやデリートなどで同時に複数セルの値が変更される可能性はありますので、そのような場合でも対応できるような構造に変えてみました。
元のコードはA列全体に対して動作するようになっていますが、以下(↓)では定数定義で範囲を指定するようにしています。
(ひとまず、A1:A20の範囲に設定してあります)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tc As Range, c As Range, v
Const targetRange = "A1:A20" '←処理対象とするセル範囲
Set tc = Intersect(Target, Range(targetRange))
If tc Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In tc
If c.Value = "" Then v = "" Else v = Date
c.Offset(0, 1).Value = v
Next c
Application.EnableEvents = True
End Sub
なお、現在はマクロが停止中なだけではなく
>Application.EnableEvents = False
の状態にある可能性が高いです。
(割り込みが発生しない状態なので、マクロが反応しない)
もしも、そのような場合には、一旦、以下のマクロを手動で実行すれば元に戻ると思います。
Sub reset()
Application.EnableEvents = True
End Sub
現状況からの回復方法も詳しく教えていただき、ありがとうございます!
今回のような作業はふつうに行なっている事ですが、その部分にも処理が必要とは知りませんでした、、、、。
とても勉強になりました!ありがとうございます!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel(VBA)データ入力に応じて...
-
エクセルで全ての数字間にカン...
-
Excel にて非表示行を探すワー...
-
エクセル VBA 小数点を含む数字...
-
excel ある部分だけをコピペし...
-
エクセルで連番をマクロで
-
Excel2007で、太字にした行のみ...
-
値貼り付けをしても書式も貼り...
-
エクセルでファイルを開いたと...
-
エクセルの複数シートの保護を...
-
Excel、同じフォルダ内のExcel...
-
前の(左隣の)シートを連続参...
-
エクセル 計算式も入っていない...
-
EXCEL:同じセルへどんどん足し...
-
別シート参照のセルをシート毎...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
EXCELで1ヶ月分の連続した日付...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
条件に応じて特定の行を非表示...
-
「マクロ」の足し算の式を教え...
-
excel ある部分だけをコピペし...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
Excelでセル内の数式は残し値だ...
-
値貼り付けをしても書式も貼り...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
エクセル2003でマクロをおこな...
-
wordのvbaでハイパーリンク設定...
-
VBA コピーを有効行までループ...
-
エクセルを使って英文から単語...
-
Excelで周期的に列を削除する方法
-
エクセル オートフィルタの抽...
-
Excelで連続印刷をするマクロ
-
yyyy/mm/ddの日付に一括変換す...
-
エクセルで特定の数字となる組...
おすすめ情報