質問編集履歴

3

画像追加

2022/01/19 08:15

投稿

dandadan
dandadan

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ```swift
1
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-19/2376a45c-044d-43b7-9fd3-2d40e42f4117.png)```swift
2
2
  Sub 整列()
3
3
 
4
4
  Dim q As Long
@@ -79,4 +79,12 @@
79
79
  表があり、対象月の営業成績を比較するため
80
80
  対象月ごとに列を選択するコードを書いたつもりです。
81
81
 
82
+ 追記
83
+ 画像を追加しました
84
+ こちらの営業成績を対象月を指定してバブルソートするようにコードを作成途中で
85
+ 途中確認のため、実行したらプロシージャのエラーで止まりました。
82
86
 
87
+ Call FunctionExchange(i, i + 1)
88
+ と、下のfunction部分を削除してもエラーは変わりませんでした。
89
+
90
+

2

インデント修正

2022/01/19 08:11

投稿

dandadan
dandadan

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,74 +1,73 @@
1
1
  ```swift
2
2
  Sub 整列()
3
-
3
+
4
- Dim q As Long
4
+ Dim q As Long
5
- Worksheets("ボタン").Select
5
+ Worksheets("ボタン").Select
6
- If Cells(2, 2) = "2020/8/1" Then
6
+ If Cells(2, 2) = "2020/8/1" Then
7
- q = 25
7
+ q = 25
8
- ElseIf Cells(2, 2) = "2020/7/1" Then
8
+ ElseIf Cells(2, 2) = "2020/7/1" Then
9
- q = 24
9
+ q = 24
10
- ElseIf Cells(2, 2) = "2020/6/1" Then
10
+ ElseIf Cells(2, 2) = "2020/6/1" Then
11
- q = 23
11
+ q = 23
12
- ElseIf Cells(2, 2) = "2020/5/1" Then
12
+ ElseIf Cells(2, 2) = "2020/5/1" Then
13
- q = 22
13
+ q = 22
14
- ElseIf Cells(2, 2) = "2020/4/1" Then
14
+ ElseIf Cells(2, 2) = "2020/4/1" Then
15
- q = 21
15
+ q = 21
16
- ElseIf Cells(2, 2) = "2020/3/1" Then
16
+ ElseIf Cells(2, 2) = "2020/3/1" Then
17
- q = 20
17
+ q = 20
18
- ElseIf Cells(2, 2) = "2020/2/1" Then
18
+ ElseIf Cells(2, 2) = "2020/2/1" Then
19
- q = 19
19
+ q = 19
20
- ElseIf Cells(2, 2) = "2020/1/1" Then
20
+ ElseIf Cells(2, 2) = "2020/1/1" Then
21
- q = 18
21
+ q = 18
22
- ElseIf Cells(2, 2) = "2019/12/1" Then
22
+ ElseIf Cells(2, 2) = "2019/12/1" Then
23
- q = 17
23
+ q = 17
24
- ElseIf Cells(2, 2) = "2019/11/1" Then
24
+ ElseIf Cells(2, 2) = "2019/11/1" Then
25
- q = 16
25
+ q = 16
26
- ElseIf Cells(2, 2) = "2019/10/1" Then
26
+ ElseIf Cells(2, 2) = "2019/10/1" Then
27
- q = 15
27
+ q = 15
28
- ElseIf Cells(2, 2) = "2019/9/1" Then
28
+ ElseIf Cells(2, 2) = "2019/9/1" Then
29
- q = 14
29
+ q = 14
30
- ElseIf Cells(2, 2) = "2019/8/1" Then
30
+ ElseIf Cells(2, 2) = "2019/8/1" Then
31
- q = 13
31
+ q = 13
32
- ElseIf Cells(2, 2) = "2019/7/1" Then
32
+ ElseIf Cells(2, 2) = "2019/7/1" Then
33
- q = 12
33
+ q = 12
34
- ElseIf Cells(2, 2) = "2019/6/1" Then
34
+ ElseIf Cells(2, 2) = "2019/6/1" Then
35
- q = 11
35
+ q = 11
36
- ElseIf Cells(2, 2) = "2019/5/1" Then
36
+ ElseIf Cells(2, 2) = "2019/5/1" Then
37
- q = 10
37
+ q = 10
38
- ElseIf Cells(2, 2) = "2019/4/1" Then
38
+ ElseIf Cells(2, 2) = "2019/4/1" Then
39
- q = 9
39
+ q = 9
40
- End If
40
+ End If
41
-
41
+
42
- Worksheets("over8").Select
42
+ Worksheets("over8").Select
43
- Dim i, j, b As Long
43
+ Dim i, j, b As Long
44
- For i = 5 To 30
44
+ For i = 5 To 30
45
- If Cells(q, i) <= Cells(q, i + 1) Then
45
+ If Cells(q, i) <= Cells(q, i + 1) Then
46
- ElseIf Cells(q, i) > Cells(q, i + 1) Then
46
+ ElseIf Cells(q, i) > Cells(q, i + 1) Then
47
- Call FunctionExchange(i, i + 1)
47
+ Call FunctionExchange(i, i + 1)
48
48
  Next
49
49
 
50
- End Sub
50
+ End Sub
51
-
51
+
52
52
  Function Exchange(R1 As Integer, R2 As Integer)
53
- Dim swap As Integer
53
+ Dim swap As Integer
54
- swap = R2
54
+ swap = R2
55
- R2 = R1
55
+ R2 = R1
56
- R1 = swap
56
+ R1 = swap
57
- If R2 - R1 = 1 Then '①入れ替える行が隣り合う場合
57
+ If R2 - R1 = 1 Then '①入れ替える行が隣り合う場合
58
- 'R2を切り取り、(R1+1)列に挿入
58
+ 'R2を切り取り、(R1+1)列に挿入
59
- Rows(R1).Cut
59
+ Rows(R1).Cut
60
- Rows(R2 + 1).Insert
60
+ Rows(R2 + 1).Insert
61
- Else '②入れ替える行が隣り合わない場合(①以外)
61
+ Else '②入れ替える行が隣り合わない場合(①以外)
62
- 'R2を切り取り、(R1+1)列に挿入
62
+ 'R2を切り取り、(R1+1)列に挿入
63
- Rows(R2).Cut
63
+ Rows(R2).Cut
64
- Rows(R1 + 1).Insert
64
+ Rows(R1 + 1).Insert
65
-
65
+
66
- 'R1を切り取り、(R2+1)列に挿入
66
+ 'R1を切り取り、(R2+1)列に挿入
67
- Rows(R1).Cut
67
+ Rows(R1).Cut
68
- Rows(R2 + 1).Insert
68
+ Rows(R2 + 1).Insert
69
- End If
69
+ End If
70
70
  End Function
71
-
72
71
  ```
73
72
 
74
73
  を実行するとSub 整列()の部分が黄色くなりエラーになります。

1

コードの記載方法

2022/01/19 02:30

投稿

dandadan
dandadan

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,4 @@
1
+ ```swift
1
2
  Sub 整列()
2
3
 
3
4
  Dim q As Long
@@ -68,6 +69,7 @@
68
69
  End If
69
70
  End Function
70
71
 
72
+ ```
71
73
 
72
74
  を実行するとSub 整列()の部分が黄色くなりエラーになります。
73
75
  プロシージャの外にはなっていないと思うのですが