見出し画像

文章の先頭に未対応、対応済の文字列を追加変更削除するよ

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

このVBAコードは、選択したセルの内容に「未対応_」や「対応済_」といった特定の文字列を自動的に追加、変更、または削除する仕組みを持っています。これにより、文章のステータスを視覚的にわかりやすく管理できます。

コードの仕組み

  1. 正規表現の準備
    コードでは「VBScript.RegExp」オブジェクトを使って「未対応_」「対応済_」という文字列を判別しています。`reg1`では「未対応_」を、`reg2`では「対応済_」をそれぞれパターンとして設定しています。

  2. セル内容のチェックと処理
    選択されたセル一つひとつについて、以下の流れで処理されます。

    • 「未対応_」が含まれている場合
      先頭にある「未対応_」を「対応済_」に置き換えます。また、「対応済_」の部分だけを赤い文字にします。

    • 「対応済_」が含まれている場合
      「対応済_」を削除し、フォント色を標準の色に戻します。これにより、完了済みの内容にはラベルが残らない状態になります。

    • どちらも含まれていない場合
      「未対応_」をセルの先頭に追加し、追加した「未対応_」の部分だけを赤字にします。

ポイント

  • 文字の色分け
    「未対応_」の文字は赤色、「対応済_」の文字は青色に設定されます。これにより、一目でステータスがわかるようになっています。

  • エラーハンドリング
    途中でエラーが発生しても処理が止まらないように、`On Error Resume Next`が使われています。

  • 画面の更新を停止
    `Application.ScreenUpdating = False` で画面のちらつきを防ぎ、最後に `Application.ScreenUpdating = True` で再び更新を有効にします。これはコードの実行速度を上げるための工夫です。

このように、セルの内容に応じてステータスを追加・変更・削除し、視覚的にもわかりやすく管理する便利なコードです。ぜひ試してみてください!


Sub 文章の先頭に未対応、対応済の文字列を追加変更削除するよ()
    Application.ScreenUpdating = False
    On Error Resume Next
    Dim reg1, reg2 As Object
    Set reg1 = CreateObject("VBScript.RegExp")   'オブジェクト作成
    Set reg2 = CreateObject("VBScript.RegExp")   'オブジェクト作成
    Dim myRng As Range
    Dim txt As String
    With reg1
        .Pattern = "^未対応_"
        .IgnoreCase = True
        .Global = True
    End With
    With reg2
        .Pattern = "^対応済_"
        .IgnoreCase = True
        .Global = True
    End With
    For Each myRng In Selection
        txt = myRng.Value
        If reg1.Test(txt) Then ' "未対応_""対応済_" に置き換え
            txt = reg1.Replace(txt, "対応済_")
            myRng.Value = txt
            ' フォント色を自動(標準色)に戻してから"対応済_" のみを赤字にする
            myRng.Font.ColorIndex = xlAutomatic
            myRng.Characters(Start:=1, Length:=4).Font.ColorIndex = 5
        ElseIf reg2.Test(txt) Then  ' "対応済_" がある場合は削除してフォント色を自動(標準色)に戻す
            myRng.Value = Replace(myRng.Value, "対応済_", "")
            myRng.Font.ColorIndex = xlAutomatic
        Else
            ' "未対応_" を先頭に追加して"未対応_" のみを赤字にする
            myRng.Value = "未対応_" & myRng.Value
            myRng.Characters(Start:=1, Length:=4).Font.ColorIndex = 3
        End If
    Next myRng
    Application.ScreenUpdating = True
End Sub

キーワードハッシュタグ

#excel #できること #vba #ステータス管理 #テキスト編集 #セル操作 #文字列変更 #正規表現 #ラベル管理 #フォント色変更 #エラーハンドリング #自動化 #ビジュアル管理 #コード解説 #オートメーション #画面更新 #パターンマッチング #色分け #簡単操作


English Translation

Adding, Changing, and Deleting "Pending" and "Completed" Labels at the Start of Text in Selected Cells

This explanation is created with ChatGPT.

This VBA code is designed to automatically add, change, or remove specific labels such as "Pending_" and "Completed_" at the beginning of the text in selected cells. This makes it easy to visually manage the status of each entry.

How the Code Works

  1. Preparing Regular Expressions
    The code uses "VBScript.RegExp" objects to identify the strings "Pending_" and "Completed_". `reg1` checks for "Pending_", and `reg2` checks for "Completed_".

  2. Checking and Processing Each Cell’s Content
    For each selected cell, the following operations take place:

    • If "Pending_" is present
      It replaces the "Pending_" label with "Completed_" at the start. The "Completed_" label is then colored red.

    • If "Completed_" is present
      The "Completed_" label is removed, returning the cell’s font color to its standard color. This leaves only the core content once the task is done.

    • If neither label is present
      It adds "Pending_" at the start of the cell text and colors this label red.

Key Points

  • Color Coding
    The labels "Pending_" and "Completed_" are colored red, so you can immediately see each entry's status.

  • Error Handling
    `On Error Resume Next` allows the code to continue running even if an error occurs.

  • Screen Update Control
    `Application.ScreenUpdating = False` prevents screen flicker, improving code speed. Finally, `Application.ScreenUpdating = True` resumes screen updates.

This way, the code automatically manages the status labels, making each entry clear and easy to track visually. Give it a try!



Keyword Hashtags

#excel #features #vba #statusmanagement #textediting #celloperations #stringmodification #regex #labelmanagement #fontcolorchange #errorhandling #automation #visualmanagement #codeguide #automation #screenupdate #patternmatching #colorcoding #easy操作

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