質問編集履歴

4

追記

2023/05/15 01:10

投稿

退会済みユーザー
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

コードの追加

2023/05/15 01:02

投稿

退会済みユーザー
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

補足文追加

2023/05/12 01:38

投稿

退会済みユーザー
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

コードの修正

2023/05/12 01:37

投稿

退会済みユーザー
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 = False Then
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