英語と中国語という文字列だけを赤字にするよ
この説明は、ChatGPTで作成しています。
このマクロは、Excelの選択範囲内にある文字列を調べて、「英語」や「中国語」という文字列だけを赤色(赤字)に変える機能です。以下では、この仕組みを簡単に説明します。
マクロの動き
画面のちらつきを防ぐ
最初に Application.ScreenUpdating = False を使って、処理中に画面が更新されないようにしています。これにより、動作がスムーズに見えます。選択範囲内のセルを順番に処理
For Each myRng In Selection で、選択したセルを1つずつ取り出して処理を進めます。セルの中身を1文字ずつ調べる
For i = 1 To Len(myRng) で、セルの内容を文字ごとにチェックしています。特定の文字列を見つける
Mid(myRng.Value, i, 3) で、セル内の「3文字分」を確認し、「中国語」と一致するかを調べます。
同様に、Mid(myRng.Value, i, 2) で「英語」と一致するかをチェックします。
赤色に変更する
一致した場合、その文字列部分のフォントプロパティを変更します。With myRng.Characters(Start:=i, Length:=3).Font のように、該当部分だけを特定して .ColorIndex = 3(赤色)に設定します。
画面更新を再開する
最後に Application.ScreenUpdating = True を使い、画面更新を元に戻します。
ポイント
このマクロは、選択範囲内のすべてのセルを対象としています。
セル内の文字列全体を調べ、部分的に一致する場合でも色を変更します。
色の指定は、Excelの「カラーパレット番号」で行われており、3 は赤を意味します。
実行方法
マクロをコピーして、ExcelのVBAエディター(Alt + F11)で貼り付けます。
実行する前に、赤字にしたい文字列を含むセルを選択します。
マクロを実行すると、「英語」と「中国語」が赤字になります。
Sub 英語と中国語という文字列だけを赤字にするよ()
Application.ScreenUpdating = False
Dim myRng As Range
Dim myStr As String
Dim i As Integer
For Each myRng In Selection
For i = 1 To Len(myRng)
If Mid(myRng.Value, i, 3) = "中国語" Then
With myRng.Characters(Start:=i, Length:=3).Font
.ColorIndex = 3
End With
ElseIf Mid(myRng.Value, i, 2) = "英語" Then
With myRng.Characters(Start:=i, Length:=2).Font
.ColorIndex = 3
End With
End If
Next i
Next myRng
Application.ScreenUpdating = True
End Sub
関連キーワード
#excel #できること #vba #文字列検索 #部分一致 #色変更 #フォント操作 #プログラミング初心者 #選択範囲 #画面更新停止 #赤色 #文字列処理 #マクロ実行 #エクセル作業効率化 #プロシージャ #VBA入門 #簡単プログラミング #仕事効率化 #初心者向けVBA #データ加工
Translation in English
Procedure Name: Highlighting "English" and "Chinese" in Red
This explanation is created using ChatGPT.
This macro examines the selected range in Excel and highlights the words "English" and "Chinese" in red. Below is a simple explanation of how it works.
How It Works
Preventing Screen Flickering
Initially, Application.ScreenUpdating = False is used to prevent the screen from refreshing during the process, ensuring smoother operation.Iterating Through the Selected Range
The For Each myRng In Selection loop processes each cell in the selected range one by one.Checking Each Character
The For i = 1 To Len(myRng) loop examines every character in a cell.Identifying Target Strings
Mid(myRng.Value, i, 3) checks three characters at a time for a match with "Chinese."
Similarly, Mid(myRng.Value, i, 2) checks for a match with "English."
Changing to Red
If a match is found, the font of the matching text is modified. For instance,With myRng.Characters(Start:=i, Length:=3).Font specifies the target part and sets .ColorIndex = 3 (red).
Resuming Screen Updates
Finally, Application.ScreenUpdating = True restores screen updates.
Key Features
The macro targets all cells in the selected range.
It searches through the entire text in each cell and highlights even partial matches.
The color is specified using Excel's color palette, where 3 represents red.
How to Use
Copy the macro into the VBA editor in Excel (Alt + F11).
Before running, select the cells containing the strings you want to highlight in red.
Run the macro, and it will highlight "English" and "Chinese" in red.
Related Keywords
#excel #whatyoucando #vba #stringsearch #partialmatch #colorchange #fontoperations #beginnersprogramming #selectedrange #screenupdatingoff #redcolor #stringprocessing #macroexecution #excelworkefficiency #procedure #vbaforbeginners #simpleprogramming #workoptimization #vbaeasyguide #dataprocessing