Last Updated on 2024年2月4日
Excelでデータを扱う際、特定の文字列に追加を行い、その変更部分を視覚的に際立たせたいシチュエーションは少なくありません。今回は、ExcelのVBAを活用して、指定文字追加と追加された部分だけを色付けする方法をご紹介します。このテクニックは、データの更新が頻繁に行われる場合に特に有効です。
注意: 文字追加限定のコードです。汎用性をもたせるには、赤文字に変更する機能の改修が必要です。
使い方
このVBAスクリプトは、Excelでのデータ加工作業を効率化し、特定の更新作業を視覚的に際立たせたい方々にとって、非常に役立つ情報です。
シート構成と準備
このVBAスクリプトを使用するには、Excelファイルに2つのシートが必要です。「データ」シートには、処理を行いたいデータを配置します。そして、「実行」シートでは、変更したい情報を入力します。具体的には、C2セルに変更前の文字列、C5セルに変更後の文字列を入力し、これらの情報に基づいて「データ」シート内の文字列が更新されます。

「データ」シートに配置されたデータは、UsedRange(使用されている範囲)全体が処理対象となります。そのため、データがシート内で飛び飛びに配置されていても、スクリプトは正しく実行されます。これにより、さまざまなデータ構成に柔軟に対応可能です。
実行方法
「実行」シートに配置された【実行】ボタンをクリックすることで、指定された変更が「データ」シート内のデータに適用され、新しく追加された部分が色付けされます。このプロセスを簡単に行うためには、VBAに関する基本的な知識があることが前提となります。
VBAコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
Option Explicit Sub ModifyAndHighlightTextInSpecificRange() Dim ws As Worksheet Dim wsRun As Worksheet Dim cell As Range Dim dataRange As Range Dim originalText As String ' 変更前の文字列を格納 Dim newText As String ' 変更後の文字列を格納 Dim diffText As String ' 追加された変更文字列を格納 Dim pos As Long ' 変更前の文字列が見つかった位置を格納 ' 対象となるシートを設定 Set ws = ThisWorkbook.Sheets("データ") Set wsRun = ThisWorkbook.Sheets("実行") ' データシートの使用範囲を取得 Set dataRange = ws.UsedRange ' 実行シートから変更前後の文字列を取得 originalText = wsRun.Range("C2").Value newText = wsRun.Range("C5").Value ' 変更後と変更前の文字列の違い(追加された部分)を特定 diffText = Replace(newText, originalText, "") ' 処理速度向上のために画面更新をオフに設定 Application.ScreenUpdating = False ' データ範囲内の各セルに対して変更を適用 For Each cell In dataRange If InStr(cell.Value, originalText) > 0 Then ' 変更前の文字列が見つかった位置を取得 pos = InStr(cell.Value, originalText) ' セルの値を変更後の文字列に更新 cell.Value = Replace(cell.Value, originalText, newText) ' 変更された部分(追加された文字列)に色を適用 cell.Characters(Start:=pos, Length:=Len(diffText)).Font.Color = RGB(255, 0, 0) End If Next cell ' 処理完了後に「データ」シートをアクティブにし、完了メッセージを表示 ws.Activate MsgBox "処理が終わりました", vbInformation, "" ' 画面更新を再びオンに設定 Application.ScreenUpdating = True End Sub |
実行方法
「実行」シートには【実行】ボタンを配置し、このボタンにVBAマクロを紐づけることで、スクリプトの実行を簡単に行えます。
ただし、【実行】ボタンの作成やマクロの紐づけ方については、初心者の方にとっては少し難しいかもしれません。これらの設定方法については、インターネット上に多くのリソースがありますので、”Excel VBA ボタン 作成 方法”などのキーワードで検索して、詳細な手順を確認してください。
まとめ
この記事が、Excelでのデータ加工や文書更新作業をより効率的かつ効果的に行いたい方々に役立つことを願っています。VBAを使ったデータの色付けは、変更部分を一目で識別するのに非常に有効な方法です。ただし、この記事はVBAに既にある程度慣れている方を対象としており、VBAが初めての方は、基本的なVBAの使い方やマクロの設定方法について、別途学習が必要です。


コメント