回答編集履歴

5

コード修正

2021/09/09 02:39

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -16,9 +16,13 @@
16
16
 
17
17
  With Sheets(1).ListObjects(1)
18
18
 
19
+ .ListRows.Add '行追加
20
+
19
21
  Dim r As Long
20
22
 
21
23
  r = .ListRows.Count 'テーブルのデータ行数
24
+
25
+
22
26
 
23
27
  Dim ctrl As Control
24
28
 
@@ -26,7 +30,7 @@
26
30
 
27
31
  If ctrl.Tag <> "" Then
28
32
 
29
- With .ListColumns(ctrl.Tag).DataBodyRange(r + 1) 'テーブルの最終行の下の行
33
+ With .ListColumns(ctrl.Tag).DataBodyRange(r) 'の最終行
30
34
 
31
35
  Select Case TypeName(ctrl)
32
36
 
@@ -47,6 +51,8 @@
47
51
  Next
48
52
 
49
53
  End With
54
+
55
+
50
56
 
51
57
  ```
52
58
 

4

コード修正

2021/09/09 02:39

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```vba
16
16
 
17
- With Sheets("Sheet4").ListObjects(1)
17
+ With Sheets(1).ListObjects(1)
18
18
 
19
19
  Dim r As Long
20
20
 

3

コード修正

2021/09/08 14:37

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```vba
16
16
 
17
- With Sheets(1).ListObjects(1)
17
+ With Sheets("Sheet4").ListObjects(1)
18
18
 
19
19
  Dim r As Long
20
20
 
@@ -24,21 +24,25 @@
24
24
 
25
25
  For Each ctrl In Me.Controls
26
26
 
27
- With .ListColumns(ctrl.Tag).DataBodyRange(r + 1) 'テーブルの最終行の下の行
27
+ If ctrl.Tag <> "" Then
28
28
 
29
- Select Case TypeName(ctrl)
29
+ With .ListColumns(ctrl.Tag).DataBodyRange(r + 1) 'テーブルの最終行の下の行
30
30
 
31
- Case "TextBox"
31
+ Select Case TypeName(ctrl)
32
32
 
33
- .Value = ctrl.Value
33
+ Case "TextBox"
34
34
 
35
- Case "OptionButton"
35
+ .Value = ctrl.Value
36
36
 
37
- If ctrl.Value Then .Value = ctrl.Caption
37
+ Case "OptionButton"
38
38
 
39
- End Select
39
+ If ctrl.Value Then .Value = ctrl.Caption
40
40
 
41
+ End Select
42
+
41
- End With
43
+ End With
44
+
45
+ End If
42
46
 
43
47
  Next
44
48
 

2

コード修正

2021/09/08 13:57

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```vba
16
16
 
17
- With Sheets("Sheet4").ListObjects(1)
17
+ With Sheets(1).ListObjects(1)
18
18
 
19
19
  Dim r As Long
20
20
 

1

追記

2021/09/08 13:49

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -45,3 +45,25 @@
45
45
  End With
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ ---
52
+
53
+ 以下、蛇足ですが、参考までに。
54
+
55
+
56
+
57
+ > それと一部転記方法を指定する箇所があります。例えば「生年月日」と「年齢」を入力する項目があり、転記する際は生年月日の列に「生年月日(年齢)」と転記するような感じです。
58
+
59
+
60
+
61
+ これに関しては、年齢は入力する必要はないと思います。
62
+
63
+ 生年月日と現在日から計算することができますので。
64
+
65
+ シートには生年月日のみ格納して年齢は関数で計算するのがいいでしょう。
66
+
67
+ 年齢を入力してしまうと、1年後にそのシートを開いたとき、年齢は正確なデータではありません。
68
+
69
+ 関数で計算すればいつ開いても正確な年齢が表示できます。