回答編集履歴

1

コメントに対する追記

2022/12/06 01:11

投稿

Usirow
Usirow

スコア364

test CHANGED
@@ -21,3 +21,32 @@
21
21
  End If
22
22
  ```
23
23
  のようにしてもいいかもしれませんね。
24
+
25
+ 12/6追記:
26
+ いろいろと抜けがありましたので以下の通り修正します。とりあえず手元ですとエラーにならずに動きます。
27
+
28
+ ・Target.Columns→Target.Column(誤字修正)
29
+ ・SearchCells.Columns→SearchCells.Column(誤字修正)
30
+ ・ Worksheets(1).Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Columns))
31
+   → Me.Range(Me.Cells(Target.Row,1),Me.Cells(Target.Row, Target.Column))
32
+  (ワークシート上に記述されているなら、Meを使った方が確実。また、Range内側のCellsにもMeをかけないと、エラーになることがある)
33
+
34
+ ```VBA
35
+ For Each SearchCells In Me.Range(Me.Cells(Target.Row, 1), Me.Cells(Target.Row, Target.Column))
36
+
37
+ If SearchCells.Value Like "####/##/##" Then
38
+ Possibility = SearchCells.Column
39
+ End If
40
+ Next
41
+ ```
42
+ また何度もMeと書くのは煩わしいので、Withを用いて以下のように書けます。
43
+ ```VBA
44
+ With Me
45
+ For Each SearchCells In .Range(.Cells(Target.Row, 1), .Cells(Target.Row, Target.Column))
46
+
47
+ If SearchCells.Value Like "####/##/##" Then
48
+ Possibility = SearchCells.Column
49
+ End If
50
+ Next
51
+ End With
52
+ ```