回答編集履歴
4
修正
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
Sub test()
|
54
54
|
|
55
|
-
Range("B
|
55
|
+
Range("B2").Resize(Range("E2").Value - 1).Formula = "=""part""&MOD(ROW()-2,$E$1)+1"
|
56
56
|
|
57
57
|
End Sub
|
58
58
|
|
3
コード修正
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
Sub test()
|
54
54
|
|
55
|
-
Range("
|
55
|
+
Range("B1").Resize(Range("E2").Value - 1).Formula = "=""part""&MOD(ROW()-2,$E$1)+1"
|
56
56
|
|
57
57
|
End Sub
|
58
58
|
|
2
コード追記
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[
|
1
|
+
[Step](https://akira55.com/fornext/) を使うといいでしょう。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
2重ループにしなくても、Mod演算子で余りを求めてもいいでしょう。
|
21
|
+
2重ループにしなくても、[Mod演算子](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mod-operator)で余りを求めてもいいでしょう。
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -41,3 +41,19 @@
|
|
41
41
|
End Sub
|
42
42
|
|
43
43
|
```
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
---
|
48
|
+
|
49
|
+
おまけ。ループを使わずに式を設定すれば1行で。こんな方法もあるということで。
|
50
|
+
|
51
|
+
```vba
|
52
|
+
|
53
|
+
Sub test()
|
54
|
+
|
55
|
+
Range("E1").Resize(Range("E2").Value - 1).Formula = "=""part""&MOD(ROW()-2,$E$1)+1"
|
56
|
+
|
57
|
+
End Sub
|
58
|
+
|
59
|
+
```
|
1
コード追記
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Step を使うといいでしょう。
|
1
|
+
[[Step](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mod-operator)](https://akira55.com/fornext/) を使うといいでしょう。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -15,3 +15,29 @@
|
|
15
15
|
Next x
|
16
16
|
|
17
17
|
```
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
2重ループにしなくても、Mod演算子で余りを求めてもいいでしょう。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
```vba
|
26
|
+
|
27
|
+
Sub test()
|
28
|
+
|
29
|
+
Dim x As Long
|
30
|
+
|
31
|
+
Dim y As Long
|
32
|
+
|
33
|
+
y = Range("E1")
|
34
|
+
|
35
|
+
For x = 2 To Range("E2").Value
|
36
|
+
|
37
|
+
Cells(x, 2).Value = "part" & (x - 2) Mod y + 1
|
38
|
+
|
39
|
+
Next x
|
40
|
+
|
41
|
+
End Sub
|
42
|
+
|
43
|
+
```
|