見出し画像

英語と中国語という文字列だけを赤字にするよ

この説明は、ChatGPTで作成しています。


このマクロは、Excelの選択範囲内にある文字列を調べて、「英語」や「中国語」という文字列だけを赤色(赤字)に変える機能です。以下では、この仕組みを簡単に説明します。


マクロの動き

  1. 画面のちらつきを防ぐ
    最初に Application.ScreenUpdating = False を使って、処理中に画面が更新されないようにしています。これにより、動作がスムーズに見えます。

  2. 選択範囲内のセルを順番に処理
    For Each myRng In Selection で、選択したセルを1つずつ取り出して処理を進めます。

  3. セルの中身を1文字ずつ調べる
    For i = 1 To Len(myRng) で、セルの内容を文字ごとにチェックしています。

  4. 特定の文字列を見つける

    • Mid(myRng.Value, i, 3) で、セル内の「3文字分」を確認し、「中国語」と一致するかを調べます。

    • 同様に、Mid(myRng.Value, i, 2) で「英語」と一致するかをチェックします。

  5. 赤色に変更する
    一致した場合、その文字列部分のフォントプロパティを変更します。

    • With myRng.Characters(Start:=i, Length:=3).Font のように、該当部分だけを特定して .ColorIndex = 3(赤色)に設定します。

  6. 画面更新を再開する
    最後に Application.ScreenUpdating = True を使い、画面更新を元に戻します。


ポイント

  • このマクロは、選択範囲内のすべてのセルを対象としています。

  • セル内の文字列全体を調べ、部分的に一致する場合でも色を変更します。

  • 色の指定は、Excelの「カラーパレット番号」で行われており、3 は赤を意味します。


実行方法

  1. マクロをコピーして、ExcelのVBAエディター(Alt + F11)で貼り付けます。

  2. 実行する前に、赤字にしたい文字列を含むセルを選択します。

  3. マクロを実行すると、「英語」と「中国語」が赤字になります。


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

  1. Preventing Screen Flickering
    Initially, Application.ScreenUpdating = False is used to prevent the screen from refreshing during the process, ensuring smoother operation.

  2. Iterating Through the Selected Range
    The For Each myRng In Selection loop processes each cell in the selected range one by one.

  3. Checking Each Character
    The For i = 1 To Len(myRng) loop examines every character in a cell.

  4. 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."

  5. 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).

  6. 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

  1. Copy the macro into the VBA editor in Excel (Alt + F11).

  2. Before running, select the cells containing the strings you want to highlight in red.

  3. 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

いいなと思ったら応援しよう!