No.3ベストアンサー
- 回答日時:
こんにちは。
この質問は、回答者のTさんの十八番ですが、私も考えてみました、というか、私は、考えすぎてしまいます。
>(P〇〇〇)というところだけ赤色にしたいのですが、どーすれば良いでしょうか!
以下のマクロは、(P〇〇〇)では、赤になりません。◯◯の所に数字が入っていないと赤になりません。画像をみると、そのように思えたからです。
もし違うようでしたら、"*(P#*)*" は、"*(P*)*" にしてください。
'//
Sub CircleRed()
Dim c As Range
Dim firstAddress As String
Dim s As Long, l As Long
With ActiveSheet.UsedRange
Set c = .Find("*(P*", , xlValues, xlWhole, , False, False)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If StrConv(c.Value, vbNarrow + vbUpperCase) Like "*(P#*)*" Then
s = InStr(1, c.Value, "(", vbTextCompare)
l = InStr(1, c.Value, ")", vbTextCompare) - s + 1
If l < 1 Then l = 2
c.Characters(s, l).Font.ColorIndex = 3
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
この回答へのお礼
お礼日時:2017/04/25 15:30
ありがとうございます!!
出来ました!
もう一つお願いがあるのですが、1つのセル内に複数(P〇〇〇)がある場合にも赤色に色つけできないでしょうか?
よろしくお願い致します!!
No.6
- 回答日時:
#3の回答者です。
ほんのちょっと替えただけで済みます。
'//
Sub CircleRed2()
Dim c As Range
Dim firstAddress As String
Dim s As Long, l As Long
Dim i As Long
With ActiveSheet.UsedRange
Set c = .Find("*(P*", , xlValues, xlWhole, , False, False)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If StrConv(c.Value, vbNarrow + vbUpperCase) Like "*(P#*)*" Then
i = 1
Do '*
s = InStr(i, c.Value, "(", vbTextCompare)
l = InStr(i, c.Value, ")", vbTextCompare) - s + 1
'If l < i Then l = 2+i '万が一エラーが出るようでしたら、ここを外します。
c.Characters(s, l).Font.ColorIndex = 3
i = s + l + 1 '*
Loop Until InStr(i, c.Value, "(", vbTextCompare) = 0 '*
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
No.5
- 回答日時:
こんばんは!
セル内で、(P と )は必ずセットになっているという前提です。
セル範囲が判らないので、すべてのセルを対象としています。
Sub Sample1()
Dim i As Long, k As Long, cnt As Long, c As Range
For Each c In ActiveSheet.UsedRange
For k = 1 To Len(c)
If Mid(c, k, 2) = "(P" Then
cnt = k + 1
Do Until Mid(c, cnt, 1) = ")"
cnt = cnt + 1
Loop
c.Characters(Start:=k, Length:=cnt - k + 1).Font.ColorIndex = 3
End If
Next k
Next c
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.4
- 回答日時:
もしかしたら「(P〇〇〇)」を含むセル全体ではなく、セルの中の一部の「(P〇〇〇)」の文字を赤くするという事でしょうか?(1つのセ
ルで複数ある場合は複数個所の文字を赤くするという事ですよね?)No.1
- 回答日時:
画像が小さくて見えないのですが,指定の文字の位置を知るのはFIND関数ですね.
セルの色を変えるのはFont.Color
セル中の指定の位置を示すのはCharacters
これらを組み合わせればできると思いますよ.
参考
http://www.officepro.jp/excelfunc/string/index14 …
https://www.moug.net/tech/exvba/0110016.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 会計ソフト・業務用ソフト Excelマクロに詳しい方教えてください 1 2023/06/29 16:18
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Excel(エクセル) 現在のセルの文字列を右隣のセルの名前にするマクロをつくりたい 4 2023/01/12 09:01
- Excel(エクセル) Excel 同一セル内 年、日 入れ替え 5 2022/04/09 01:48
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) Excel マクロの編集がグレーになって 編集ができなくなりました 2 2023/04/28 20:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
EXCEL VBA セルに既に入...
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
貼り付けで複数セルに貼り付けたい
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
(Excel)数字記入セルの数値の後...
-
Excelで住所を2つ(町名迄と番...
-
セルの高さ(行高)を求めるには?
-
エクセルの一つのセルに複数の...
-
VBAで特定の文字が入力されたセ...
-
Excelで条件をつけてハイパーリ...
-
Excelの関数で、性別が男なら『...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報