回答編集履歴

1

修正

2022/06/27 05:15

投稿

jinoji
jinoji

スコア4585

test CHANGED
@@ -1,18 +1,31 @@
1
+ 質問への追記を受け、修正しました。
2
+
1
3
  ```
4
+ Private Sub TextBox1_AfterUpdate()
5
+ Dim d
6
+ d = TextBox1.Text
7
+ If Not IsDate(d) Then Exit Sub
8
+ Dim i
9
+ For i = 0 To 9
10
+ Me.Controls(i).Text = DateAdd("m", i, d)
11
+ Next
12
+ End Sub
13
+
2
14
  Private Sub CommandButton1_Click()
15
+ Dim i
16
+ sheetupdate Me.Controls(0).Text, Me.Controls(10).Text, 1
17
+ For i = 1 To 9
18
+ sheetupdate Me.Controls(i).Text, Me.Controls(i + 10).Text, 2
19
+ Next
20
+ End Sub
21
+
22
+ Private Sub sheetupdate(d, e, c)
23
+ With ActiveSheet
3
- Dim d, g, y
24
+ Dim rng As Range
4
- With Me
25
+ Set rng = .Columns(1).Find(DateValue(d))
5
- d = DateValue(.TextBox1.Text)
26
+ If rng Is Nothing Then Exit Sub
6
- g = .TextBox2.Text
27
+ rng.Offset(, c).Value = e
7
- y = .TextBox3.Text
8
28
  End With
9
-
10
- Dim ws As Worksheet
11
- Set ws = ThisWorkbook.Worksheets("シート")
12
-
13
- If WorksheetFunction.CountIf(ws.Columns(1), d) > 0 Then
14
- ws.Cells(WorksheetFunction.Match(d, ws.Columns(1), 0), 2).Resize(, 2).Value = Array(g, y)
15
- End If
29
+ End Sub
16
30
 
17
- End Sub
18
31
  ```