電子書籍の厳選無料作品が豊富!

例えば
「今日はとてもいい天気ですね」
という文字列がある場合、自動で“天気”という文字に任意の色が
つくようにできるでしょうか?
エクセル2007を使っています。

A 回答 (4件)

マクロを使うなら、こんな具合にします。




手順:
シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける


private sub Worksheet_Change(byval Target as excel.range)
 dim h as range
 dim pos as long
 for each h in target
  pos = instr(h.text, "天気")
  do while pos > 0
   h.characters(pos, len("天気")).font.colorindex = 3
   pos = instr(pos + 1, h.text, "天気")
  loop
 next
end sub

ファイルメニューから終了してエクセルに戻る
セルに「今日の天気は晴れの天気予報でした」などのように言葉を記入すると、自動で色が付く。


#既に記入済みの言葉があるときは、記入済みのセル範囲をコピーして、その場で貼り付ける。



#ただし
言わずもがなですが、文字列の途中に書式を施せるのは文字列を「生データ」で記入したときだけです。数式の計算結果などには一切そういう事はできません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
教えていただいたものが一番今回のものに適していました。
他の皆様方のもすごく助けになりました。

お礼日時:2012/05/28 22:10

こんばんは!


一例です。

↓の画像のようにSheet2に色を付けたい文字と文字色(B列を塗りつぶし)の表を作成しておきます。

画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j, k As Long
Dim str As String
Dim ws As Worksheet
Set ws = Worksheets("Sheet2")
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To ws.Cells(Rows.Count, 1).End(xlUp).Row
For k = 1 To Len(Cells(i, 1))
str = Mid(Cells(i, 1), k, Len(ws.Cells(j, 1)))
If str = ws.Cells(j, 1) Then
Cells(i, 1).Characters(Start:=k, Length:=Len(ws.Cells(j, 1))).Font.Color = _
ws.Cells(j, 2).Interior.Color
End If
Next k
Next j
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ マクロなので「自動で!」という訳にはいきません。
データ変更があるたびにマクロを実行する必要があります。

参考になりますかね?m(_ _)m
「エクセルで特定文字列の色つけ」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。考え付かないアイデアでした。

お礼日時:2012/05/28 22:08

VBAでマクロを作成することで出来ます。


Cells.Findで対象文字列を検索してセル移動し、Application.WorksheetFunction.Findでセル内の文字を検索し、戻り値がその文字列の開始位置になっているので、ActiveCell.Characters.(Start:=○○, Length:=○○).Fontのstartに入れて、検索文字列数をLengthに入れ、.Colorに自分の指定したい色を設定し、色を変えたら再度検索、という感じで実装は可能でしょうかね。

自分はVBAを使ってマクロを組んだことがないので、実際のソースコードは詳しい人におまかせ致します。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2012/05/28 22:07

いいえ。


エクセルの一般機能では、言葉の一部だけを自動で書式設定させる方法はありません。

自動機能で出来るのは、あくまでもセル丸ごとが対象になります。
「天気」を含む言葉が記入された、セル全体の色を塗るとか文字色を変えるのように。



もちろん、手動で数式バーの中で「天気」の文字を選んで文字色を付けることはできます。
またマクロを使い、手動で行った通りにマクロでやらせる事もできます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!