すいませんが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.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
--------------------------------------------------------------------------
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.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.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
お探しの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルVBAで複数セルの色を変更する方法
Excel(エクセル)
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
EXCEL VBA で複数の特定文字に色をつけたい
その他(Microsoft Office)
-
-
4
エクセルの一つのセルに複数の色をつけたいのですが、可能ですか
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
エクセルでセルの中の色分け
Excel(エクセル)
-
7
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
8
VBA リストを参照して文字色を変える
その他(ソフトウェア)
-
9
VBAで特定の文字以降の文字列の色の変更をしたい
Excel(エクセル)
-
10
エクセルマクロ 赤色の文字を検索するについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
【Excel VBA】一番右端セルまで...
-
入力規則のリスト選択
-
EXCEL VBA 文中の書式ごと複写...
-
Excel UserForm の表示位置
-
VBA 複数条件の分岐処理の上手...
-
Excelで空白セル直前のセルデー...
-
Excel VBA IF文がうまく動作し...
-
DataGridViewのフォーカス遷移...
-
特定の色のついたセルを削除
-
ListBoxを選択したデータ編集② ...
-
エクセルの合計を自動で表示さ...
-
DataGridViewで指定したセルの...
-
【VBA】【ユーザーフォーム_Lis...
-
オーバーフローを回避する方法?
-
VBA deleteをクリックすると型...
-
Excelのセルから日付情報を取得...
-
Excel VBA 同じ処理を複数回行...
-
マクロの実行時エラー'1004'が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
VBA 複数条件の分岐処理の上手...
-
Excelで空白セル直前のセルデー...
-
Excel UserForm の表示位置
-
EXCEL VBA 文中の書式ごと複写...
-
特定の色のついたセルを削除
-
VBA にて、条件付き書式で背景...
-
VBAでユーザーフォームにセル値...
-
【VBA】写真の貼り付けコードが...
-
【Excel VBA】一番右端セルまで...
-
Excel VBAでCheckboxの名前を変...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA:日付を配列に入れ別セルに...
-
Excel VBA IF文がうまく動作し...
-
下記のマクロの説明(意味)を...
-
入力規則のリスト選択
-
C# DataGridViewで複数選択した...
-
関数の引数でrangeを指定したとき
おすすめ情報