| 
    
     |  | ソフトバンククリエイティブの『やさしくわかるExcel 関数・マクロ』 h00p://isbn.sbcr.jp/2659X
 という本を読みながらマクロを学習している者です。
 
 この本の275ページにある演習問題の01について分からないことがあります。
 
 問題は、
 「セルA1に入力されている文字が白色でなければ白色に変え、白色なら黒色に変えるマクロを作りなさい」
 というもので、
 条件として、
 「セルA1には何かのデータが入力されているものとする。」
 となっています。
 
 上記サイトからダウンロードした模範解答のマクロでは、
 セルA1に「見えますか?」と入力されていて、
 プロシージャは以下のようになっています。
 Sub セルA1の文字が白色でなければ白色に白色なら黒色に()
 If Range("A1").Font.ColorIndex <> 2 Then
 Range("A1").Font.ColorIndex = 2
 Else
 Range("A1").Font.ColorIndex = 1
 End If
 End Sub
 
 しかし、私は以下のように作りました。
 Sub 文字色変更()
 a = Range("A1").Font.ColorIndex
 Select Case a
 Case a = 2
 Range("A1").Font.ColorIndex = 1
 Case Else
 Range("A1").Font.ColorIndex = 2
 End Select
 End Sub
 
 そうしたところ、模範解答のマクロは実行するたびに、セルA1に入力されている「見えますか?」の文字の色が黒→白→黒→白→...と交互に変わるのですが、私が作成したマクロでは、黒→白→白→白→...となってしまい、いったん白になった文字の色が黒に変わりません。
 このマクロのどこに問題があって、白→黒に変わらないのでしょうか。
 
 ExcelはOffice XP PersonalのExcel 2002 SP3を使用しています。
 
 よろしくお願いします。
 
 |  |