• ベストアンサー
  • 困ってます

エクセルVBAで。

  • 質問No.5620659
  • 閲覧数68
  • ありがとう数3
  • 回答数3

お礼率 59% (191/323)

お世話になります。
VBA初心者です。
(初心者でもないのですが、しばらく遠ざかっていました。)
エクセルVBAの記述内容をコピーし、
エクセルの通常のシートへ貼り付けした際、
記述上「’」で始まる文字は緑色が付いていますが、
通常のシートへ貼り付けした際、黒字になってしまいます。
そこで、下記の様なVBAを記述し、貼り付け後に、
「’」から始まる文字を緑色に着色しようと試みましたが
(やはり)うまくいきませんでした。

エクセル関数なんかも織り交ぜたおかしな記述だと思いますが
何となくやりたい事が伝わって頂けるかと思うのですが、
どう修正したら出来ますでしょうか。

ご教授下さいます様、宜しくお願いいたします。

  記

Sub 色()
Dim y As Integer
Dim x As Integer
Dim a As Integer

mysheet = ActiveSheet.Name

For y = 1 To 10
x = Sheets(mysheet).Cells(Rows.Count, y).End(xlUp).Row
a = 0

Do Until a > x
a = a + 1

If Right(Cells(y, a), 1) = "'" Then
Cells(y, a).Select
Selection.Font.ColorIndex = 10
End If
Loop
Next

End Sub

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 50% (379/747)

>(初心者でもないのですが、しばらく遠ざかっていました。)
???
>どう修正したら出来ますでしょうか。
別物になってしまいました

Sub 色()
Dim y As Integer
Dim x As Integer
For y = 1 To 10
For x = 1 To Cells(Rows.Count, y).End(xlUp).Row
If InStr(Trim(Cells(x, y).Value), "'") = 1 Then
Cells(x, y).Font.ColorIndex = 10
End If
Next x
Next y
End Sub

参考まで
お礼コメント
miruchoko

お礼率 59% (191/323)

別物でもないです。
シンプル且つ、希望通りの結果になりました。
ありがとうございました。
投稿日時:2010/01/25 20:44

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 57% (3570/6233)

こんにちは。

このようにすればよいのですが、VBAコードを貼り付けて色付けするには、もう少し複雑に作らなくてはなりません。

'-------------------------------------------
Sub TestSample1()
  Dim rng As Range
  Dim c As Range
  On Error Resume Next
  Set rng = Range("A1:J10").SpecialCells(xlCellTypeConstants, 23)
  On Error GoTo 0
  If rng Is Nothing Then Exit Sub
  Application.ScreenUpdating = False
  For Each c In rng
    If Len(c.Value) > 0 Then
        c.Font.ColorIndex = xlColorIndexAutomatic
      If InStr(Trim(c.Value), "'") = 1 Or c.PrefixCharacter = "'" Then
        c.Font.ColorIndex = 10
      End If
    End If
  Next c
  Application.ScreenUpdating = True
End Sub

----------------------------------------
お礼コメント
miruchoko

お礼率 59% (191/323)

なるほど。
大変参考になります。
ありがとうございました。
投稿日時:2010/01/25 20:45
  • 回答No.1

ベストアンサー率 31% (4939/15540)

>記述上「’」で始まる文字は緑色が付いていますが、

"'" はコメント記号なので、VBEでは着色表示されて当然です。
ワークシートでは全く異なる意味を持つ記号(セル内容を文字列として認識)なので、コメント行が着色表示される事はありません。

VBAのコードをシートに貼り付けても動作しませんよ。

>どう修正したら出来ますでしょうか。

Right関数ではなくてLeft関数を使用して下さい。
お礼コメント
miruchoko

お礼率 59% (191/323)

そうですね。
Leftでした。
ありがとうございました。
投稿日時:2010/01/25 20:43
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ