質問編集履歴
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,6 +50,9 @@
|
|
50
50
|
|
51
51
|
Ifの部分をCaseにしてみたのですが、結果が変わらないのでその前のForの部分に問題があるのかなと思ったのですが、どのようにすれば良いのか分からず行き詰まってます。
|
52
52
|
|
53
|
+
コード自体は色々なサイトを参考にして作成しています。
|
54
|
+
エラー確認のコードはchatGPTにて作成しました。エラー解消のコードもそもそものやりたいコード作成もchatGPTに質問したのですが、Excelのコードが混じったりとなかなか上手くいかず行き詰まっている所です。
|
55
|
+
|
53
56
|
### エラー確認のコード
|
54
57
|
```
|
55
58
|
Sub colorchange1
|
3
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,3 +50,48 @@
|
|
50
50
|
|
51
51
|
Ifの部分をCaseにしてみたのですが、結果が変わらないのでその前のForの部分に問題があるのかなと思ったのですが、どのようにすれば良いのか分からず行き詰まってます。
|
52
52
|
|
53
|
+
### エラー確認のコード
|
54
|
+
```
|
55
|
+
Sub colorchange1
|
56
|
+
|
57
|
+
Dim oSh As Shape
|
58
|
+
Dim oTbl As Table
|
59
|
+
Dim X As Integer
|
60
|
+
Dim Y As Integer
|
61
|
+
Dim oColor As Long
|
62
|
+
Dim newColor As Long
|
63
|
+
|
64
|
+
With ActiveWindow.Selection.ShapeRange
|
65
|
+
Set oTbl = .Table
|
66
|
+
|
67
|
+
For Y = 1 To oTbl.Rows.Count
|
68
|
+
For X = 1 To oTbl.Columns.Count
|
69
|
+
|
70
|
+
If oTbl.Cell(Y, X).Selected Then
|
71
|
+
|
72
|
+
With oTbl.Cell(Y, X).Shape
|
73
|
+
oColor = .Fill.ForeColor.RGB
|
74
|
+
If oColor = RGB(255,0,0) Then
|
75
|
+
newColor = RGB(0,0,255)
|
76
|
+
ElseIf oColor = RGB(0,0,255) Then
|
77
|
+
newColor = RGB(0,204,0)
|
78
|
+
ElseIf oColor = RGB(0,204,0) Then
|
79
|
+
newColor = RGB(255,255,0)
|
80
|
+
ElseIf oColor = RGB(255,255,0) Then
|
81
|
+
newColor = RGB(204,0,255)
|
82
|
+
Else
|
83
|
+
newColor = RGB(255,0,0)
|
84
|
+
End If
|
85
|
+
|
86
|
+
If oColor <> newColor Then
|
87
|
+
.Fill.ForeColor.RGB = newColor
|
88
|
+
MsgBox "セル("& Y & "," & X & ")の色を変更しました"
|
89
|
+
End If
|
90
|
+
End With
|
91
|
+
|
92
|
+
End If
|
93
|
+
Next
|
94
|
+
Next
|
95
|
+
End With
|
96
|
+
End Sub
|
97
|
+
```
|
2
補足文追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
コマンドボタンを押したら、そのセルの色を判断して次の色に変わるというボタンを作成しています。
|
2
|
+
PowerPointのテーブルでコマンドボタンを押したら、そのセルの色を判断して次の色に変わるというボタンを作成しています。
|
3
3
|
|
4
4
|
選択セルが1つの時は上手くいくのですが、選択セルが2つになったら、2回ループされて「RGB(0,204,0)」の色になってしまいます。
|
5
5
|
解決方法をご教授頂けると助かります。
|
1
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,8 +23,7 @@
|
|
23
23
|
For Y = 1 To oTbl.Rows.Count
|
24
24
|
For X = 1 To oTbl.Columns.Count
|
25
25
|
|
26
|
-
If oTbl.Cell(Y, X).Selected
|
26
|
+
If oTbl.Cell(Y, X).Selected Then
|
27
|
-
Else
|
28
27
|
|
29
28
|
With oTbl.Cell(Y, X).Shape
|
30
29
|
If .Fill.ForeColor.RGB = RGB(255,0,0) Then
|