回答編集履歴

4

修正

2021/02/05 13:10

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  Sub test()
54
54
 
55
- Range("B1").Resize(Range("E2").Value - 1).Formula = "=""part""&MOD(ROW()-2,$E$1)+1"
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

コード修正

2021/02/05 13:10

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  Sub test()
54
54
 
55
- Range("E1").Resize(Range("E2").Value - 1).Formula = "=""part""&MOD(ROW()-2,$E$1)+1"
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

コード追記

2021/02/05 13:09

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -1,4 +1,4 @@
1
- [[Step](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mod-operator)](https://akira55.com/fornext/) を使うといいでしょう。
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

コード追記

2021/02/05 13:07

投稿

hatena19
hatena19

スコア34073

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
+ ```