- ベストアンサー
マクロの不具合を教えてくださいませ。
- マクロを実行すると、「着色」ができない不具合が発生しています。
- 具体的には、セルの値が「a」の場合は「赤」に、セルの値が「o」の場合は「青」に着色するはずですが、着色がされていません。
- 不具合の原因を特定するために、コードのどの部分に問題があるか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sub 着色文字置換() Dim index_1 As Integer Dim index_a As Integer For index_1 = 5 To 12 For index_a = 3 To 7 文字 = Cells(index_1, index_a).Value Select Case 文字 Case "a" '着色 Cells(index_1, index_a).Font.ColorIndex = 3 Case "o" '着色 Cells(index_1, index_a).Font.ColorIndex = 5 End Select Next index_a Next index_1 End Sub これでどうでしょうか?
その他の回答 (3)
- umekihajime
- ベストアンサー率23% (13/55)
どのような結果を求めているかがわからないので回答はできませんが、 エラーになることなく処理は終了するでしょう。 ステップイン(F8キーを押す)で一行ずつ実行することができます。 ご自身で解決できませんか? 追伸 フォントの色が変わるセルの位置が期待とは違うのでしょうか? このプログラムだと実行時にフォーカスされてるセルのフォント色が変わります。
- emaxemax
- ベストアンサー率35% (44/124)
お書きのコードはどこも選択させる指示がないのに選択したセルを着色するようになっているからです。 選択させるなら Sub 着色文字置換02() For index_1 = 5 To 12 For index_a = 3 To 7 Cells(index_1, index_a).Select '選択 文字 = Selection.Value Select Case 文字 Case "a" Selection.Value = "赤" '着色 Selection.Font.ColorIndex = 3 Case "o" '選択 Selection.Value = "青" '着色 Selection.Font.ColorIndex = 5 End Select Next index_a Next index_1 End Sub 選択しなくても着色するなら Sub 着色文字置換03() For index_1 = 5 To 12 For index_a = 3 To 7 Set myCell = Cells(index_1, index_a) With myCell 文字 = .Value Select Case 文字 Case "a" .Value = "赤" '着色 .Font.ColorIndex = 3 Case "o" '選択 .Value = "青" '着色 .Font.ColorIndex = 5 End Select End With Next index_a Next index_1 End Sub どちらでも大丈夫です。
お礼
早速のご教授有難うございました。 大変参考になりました。 感謝してます。^^
- osamuy
- ベストアンサー率42% (1231/2878)
現在選択中のセルの色を変えてますが、現在選択中のセルを選び直してないからだと。 index_1とindex_aの変更に合わせてセルをselectするか、Cells()を使っているから、ダイレクトに指定セルの色を変えるコードにしてみては。
お礼
早速のご教授有難うございました。 大変参考になりました。 感謝してます。^^