すいませんがEXCEL2013 VBAについてお教えください。
FOR-NEXT等の繰り返し分を使用し一つのセル内の文字に交互に黒赤黒赤と色を塗るVBAを作りたいと考えています。
処理例
※説明用にだいぶ簡略化した記載に直しましたがこんな感じの処理を考えています。
●1回目処理 A1セル
【A】5【B】6
BBBBBBBRRRRRR
※B←黒色R←赤色という意味合いです。
Range("A1").Value = "【A】5"
Range("A1").Value = Range("A1").Value & "【B】6"
Range("A1").Characters(Start:=5, Length:=4).Font.ColorIndex = 3 '文字色赤
●2回目処理 A1セル
【A】5【B】6【C】7
BBBBBBBBBBBBBBBBBBB
※B←黒色
Range("A1").Value = "【A】5"
Range("A1").Value = Range("A1").Value & "【B】6"
Range("A1").Characters(Start:=5, Length:=4).Font.ColorIndex = 3 '文字色赤
Range("A1").Value = Range("A1").Value & "【C】7"
Range("A1").Characters(Start:=9, Length:=4).Font.ColorIndex = 1 '文字色黒
1回目は問題なく黒赤と色が塗られます。
2回目の処理を行うと全部黒になってしまいます。
セル内の文字に黒赤黒赤と交互に文字色を塗ることはできないでしょうか。
お手数をおかけしますが考え方だけでもお教えいただけると幸いです。
よろしくお願いします。
No.5
- 回答日時:
こんにちは!
横からお邪魔します。
A列限定にしています。
シートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim k As Long
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
.Font.ColorIndex = xlAutomatic
For k = 2 To Len(.Value) Step 2
.Characters(Start:=k, Length:=1).Font.ColorIndex = 3
Next k
End With
End Sub
こんな感じではではどうでしょうか?m(_ _)m
No.4
- 回答日時:
No.3 追加
数値として認識されているものは、このままではダメです。
数値も含めたいならば事前に文字列に変更する必要があります。
早速の返事ありがとうございます。
すごく勉強になりますし助かります。
すいません。私自身がシートモジュールの「Worksheet_Change」イベントを今まで使ったことがないので勉強・確認させていただきますのでお礼に若干時間をください。
(本日夜返事予定です。)
お手数ですがよろしくお願いします。
No.3
- 回答日時:
でしたら、以下をシートモジュールの「Worksheet_Change」イベントに記入してみてください。
--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 位置 As Long
For 位置 = 1 To Len(Target.Value)
If 位置 Mod 2 = 0 Then
Target.Characters(Start:=位置, Length:=1).Font.ColorIndex = 3
Else
Target.Characters(Start:=位置, Length:=1).Font.ColorIndex = 1
End If
Next
End Sub
--------------------------------------------------------------------------
No.2
- 回答日時:
No.1 追加
もちろんこれでも使えます。
--------------------------------------------------------------------------
Sub test()
Dim 位置 As Long
For 位置 = 1 To Len(Range("A1").Value)
If 位置 Mod 2 = 0 Then
Range("A1").Characters(Start:=位置, Length:=1).Font.ColorIndex = 3
Else
Range("A1").Characters(Start:=位置, Length:=1).Font.ColorIndex = 1
End If
Next
End Sub
--------------------------------------------------------------------------
GooUserラックさん
早速の返事ありがとうございます。
2つとも事例ありがとうございます。両方試させていただきできるころを確認しました。
説明が足りず申し訳ありません
この方式ですと文字列がA1に全て入っている状態での色塗りの指定と思います。
できれば文字を追加して色塗り、文字を追加して色塗りと考えております。
この方法で交互の色付けは難しいのでしょうか。
No.1
- 回答日時:
こんなのいかがですか?
--------------------------------------------------------------------------
Sub test()
Dim 位置 As Long
Range("A1").Select
For 位置 = 1 To Len(ActiveCell.Value)
If 位置 Mod 2 = 0 Then
ActiveCell.Characters(Start:=位置, Length:=1).Font.ColorIndex = 3
Else
ActiveCell.Characters(Start:=位置, Length:=1).Font.ColorIndex = 1
End If
Next
End Sub
--------------------------------------------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) 条件付き書式でフォント色を赤に設定しましたが、 2 2023/07/29 14:17
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) エクセルシートをVBAでpdfで保存したい 2 2022/06/27 10:17
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
エクセルの一つのセルに複数の色をつけたいのですが、可能ですか
Excel(エクセル)
-
EXCEL VBA で複数の特定文字に色をつけたい
その他(Microsoft Office)
-
-
4
エクセルVBAで複数セルの色を変更する方法
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
7
VBA リストを参照して文字色を変える
その他(ソフトウェア)
-
8
VBAで特定の文字以降の文字列の色の変更をしたい
Excel(エクセル)
-
9
エクセルマクロ 赤色の文字を検索するについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
VBA 複数条件の分岐処理の上手...
-
Excel UserForm の表示位置
-
入力規則のリスト選択
-
DataGridViewのフォーカス遷移...
-
DataGridViewで指定したセルの...
-
エクセルのカーソルを非表示に...
-
Excelで空白セル直前のセルデー...
-
【VBA】【ユーザーフォーム_Lis...
-
セルの半透明着色処理
-
Excel VBA IF文がうまく動作し...
-
特定の色のついたセルを削除
-
EXCEL VBA 文中の書式ごと複写...
-
EXCEL 2010 VBAでピボットで複...
-
pukiwikiのテーブル拡張書式
-
Excel2003 VBA 「*」を含む文字...
-
エクセルの合計を自動で表示さ...
-
csvファイルの特定のセルから読...
-
複数指定セルの可視セルのみを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報