A2~A20までのセルに文字を入力した段階で、それぞれB2~B20に入力日時を入れるVBAを以下のように組んでいます。
しかし、同様の条件を同一シートのE2~E20・F2~F20にも入力・自動表示できるようにしなければならなくなり、困っています。
どのように記述を変えればよいのか、教えていただけたらと思います。
宜しく御願いいたします。
Sub Worksheet_change(ByVal Target As Range)
Dim Rng As Range
Dim c As Range
Set Rng = Range("A2:A20")
If Intersect(Target,Rng) Is Nothing Then Exit Sub
For Each c In Intersect(Target,Rng)
If Not IsEmpty(c) Then
c.Offset(, 1).Value = Now
Else
c.Offset(, 1).ClearContents
End If
Next
Rng.Offset(, 1).EntireColumn.AutoFit
End Sub
申し訳ありませんが、何卒、宜しく御願いいたします。
No.3ベストアンサー
- 回答日時:
Private Sub Worksheet_change(ByVal Target As Range)
Application.EnableEvents = False
Dim Rng As Range
Dim c As Range
Set Rng = Range("A2:A20,E2:E20")
If Intersect(Target, Rng) Is Nothing Then GoTo ext
For Each c In Rng
If Not IsEmpty(c) Then
c.Offset(, 1).Value = Now
Else
c.Offset(, 1).ClearContents
End If
Next
Rng.Offset(, 1).EntireColumn.AutoFit
ext:
Application.EnableEvents = True
End Sub
---
(1)範囲拡張
Set Rng = Range("A2:A20,E2:E20")
(2)Application.EnableEvents = Falsewo
をいれた。
c.Offset(, 1).Value = Now
でChangeイベントの中にこないように
同時にIf Intersect(Target, Rng) Is Nothing Then GoTo ext
に変えてApplication.EnableEvents = True
を通るように
(3)For Each c In Intersect(Target,Rng)
を無駄を省いた。
For Each c In Rng
で良いようだ。
No.4
- 回答日時:
#3です。
もっとコードを省いて
Private Sub Worksheet_change(ByVal Target As Range)
Application.EnableEvents = False
Dim Rng As Range
Set Rng = Range("A2:A20,E2:E20")
If Intersect(Target, Rng) Is Nothing Then GoTo ext
Target.Offset(, 1).Value = Now
Rng.Offset(, 1).EntireColumn.AutoFit
ext:
Application.EnableEvents = True
End Sub
で良いのではないかと思いました。これで結果が、都合悪いですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
autocad 数値が表示されなくな...
-
EXCEL VBAの入力規則で小数点桁...
-
【スプレッドシート】時間入力...
-
ドロップダウンリストを2列で...
-
メアド入力不要な日程調整ツー...
-
マクロ 入力規則は残し文字の...
-
Excelで日報を自動で作成したい...
-
あるスマホアプリ内で会員登録...
-
求人情報で「SAP入力可能な方」...
-
jwwの文字入力について
-
手書き入力で文章を作成できる...
-
GoogleカレンダーToDoリスト入...
-
IMEひらがな入力 間違って直接...
-
筆ぐるめでの外字入力
-
VBAの日付チェックでオーバーフ...
-
Good Reader が繋がらない!
-
GIMP2 キーボード入力がうまく...
-
パス管理 KeePass 自動入力を速...
-
入力について
-
エクセルで、enterを押すと勝手...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドロップダウンリスト 自動表...
-
Excelについて
-
autocad 数値が表示されなくな...
-
ドロップダウンリストを2列で...
-
VBAの日付チェックでオーバーフ...
-
Excelで日報を自動で作成したい...
-
特殊漢字「はし」(橋のつくり...
-
excelのInputBoxで日本語入力OF...
-
マクロ 入力規則は残し文字の...
-
エクセルの検索関数でシート内...
-
求人情報で「SAP入力可能な方」...
-
excelで第二金曜日を…
-
【スプレッドシート】時間入力...
-
エクセル 日付超過でポップアッ...
-
バーコードリーダーを使ってフ...
-
エクセルのマクロの使い方
-
エクセルVB ポップアップウィ...
-
小数点以下の入力規則
-
エクセル COUNTIF関数 検索条...
-
バッククォートの入力方法
おすすめ情報