見出し画像

文章の先頭にOKを赤字で追加するよ

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

このプロシージャ「文章の先頭にOKを赤字で追加するよ」は、選択されたセル内の文字列の先頭に「OK_」を追加し、その「OK_」部分を赤い文字にするものです。以下のような流れで動作します。

  1. 画面の更新を一時停止する
    最初に `Application.ScreenUpdating = False` で画面の更新を一時停止します。これによって処理が速くなります。

  2. エラーが発生しても続行する設定
    `On Error Resume Next` により、エラーが発生しても処理を続けるようにしています。これで万が一問題が起きても、プログラムが止まらず進みます。

  3. 選択範囲のセルに対してループ処理を実行
    `For Each myRng In Selection` で、選択されたセルを一つずつ取り出して処理します。

  4. セルの内容の先頭に「OK_」を追加
    `myRng = "OK_" & myRng.Value` で、セル内の文字列の先頭に「OK_」を追加します。

  5. 「OK_」の部分を赤色にする
    `For i = 1 To Len(myRng)` のループで文字列を一文字ずつ確認し、「OK_」の部分を見つけた場合、その3文字のフォント色を赤(`ColorIndex = 3`)に変更します。

  6. 処理が終わったら画面の更新を再開する
    最後に `Application.ScreenUpdating = True` で画面の更新を再開して、ユーザーが変更内容を確認できるようにします。

このプログラムを実行すると、例えば「Hello」という文字列がセルに入力されている場合、結果は「OK_Hello」となり、「OK_」の部分が赤字になります。


Sub 文章の先頭にOKを赤字で追加するよ()
    Application.ScreenUpdating = False
    On Error Resume Next
    Dim myRng As Range
    Dim myStr As String
    Dim i As Long
    For Each myRng In Selection
            myRng = "OK_" & myRng.Value
            For i = 1 To Len(myRng)
                myStr = Mid(myRng.Value, i, 3)
                '_済みがあったら書式変更
                If myStr Like "OK_" Then
                    With myRng.Characters(Start:=i, Length:=3).Font
                        .ColorIndex = 3
                    End With
                End If
            Next i
    Next myRng
    Application.ScreenUpdating = True
End Sub

ハッシュタグ:
#excel #できること #vba #文字列操作 #セル書式 #色変更 #フォントカラー #ループ処理 #エラー処理 #プログラミング #エクセルマクロ #自動化 #初心者向け #テキスト追加 #選択範囲 #コード解説 #VBA入門 #プロシージャ #処理速度改善 #赤文字


Add "OK" in Red to the Beginning of Text

This explanation is created by ChatGPT.

The procedure "Add 'OK' in Red to the Beginning of Text" adds "OK_" to the beginning of each selected cell's text and changes that "OK_" to red. Here’s a step-by-step breakdown:

  1. Temporarily Stop Screen Updates
    The line `Application.ScreenUpdating = False` temporarily stops the screen from updating, making the process faster.

  2. Set Error Handling
    `On Error Resume Next` allows the code to continue even if an error occurs, preventing the program from stopping unexpectedly.

  3. Loop Through the Selected Range
    `For Each myRng In Selection` iterates through each selected cell.

  4. Add "OK_" to the Start of Each Cell's Content
    `myRng = "OK_" & myRng.Value` adds "OK_" to the beginning of each cell’s content.

  5. Change "OK_" to Red
    A loop `For i = 1 To Len(myRng)` checks each character, and when it finds "OK_", it changes those three characters to red (`ColorIndex = 3`).

  6. Resume Screen Updates
    Finally, `Application.ScreenUpdating = True` resumes screen updates so that the changes are visible to the user.

After running this code, if a cell originally contains "Hello", it will be transformed into "OK_Hello" with the "OK_" part in red.


この記事が気に入ったらサポートをしてみませんか?