文章の先頭にOKを赤字で追加するよ
この説明は、ChatGPTで作成しています。
このプロシージャ「文章の先頭にOKを赤字で追加するよ」は、選択されたセル内の文字列の先頭に「OK_」を追加し、その「OK_」部分を赤い文字にするものです。以下のような流れで動作します。
画面の更新を一時停止する
最初に `Application.ScreenUpdating = False` で画面の更新を一時停止します。これによって処理が速くなります。エラーが発生しても続行する設定
`On Error Resume Next` により、エラーが発生しても処理を続けるようにしています。これで万が一問題が起きても、プログラムが止まらず進みます。選択範囲のセルに対してループ処理を実行
`For Each myRng In Selection` で、選択されたセルを一つずつ取り出して処理します。セルの内容の先頭に「OK_」を追加
`myRng = "OK_" & myRng.Value` で、セル内の文字列の先頭に「OK_」を追加します。「OK_」の部分を赤色にする
`For i = 1 To Len(myRng)` のループで文字列を一文字ずつ確認し、「OK_」の部分を見つけた場合、その3文字のフォント色を赤(`ColorIndex = 3`)に変更します。処理が終わったら画面の更新を再開する
最後に `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:
Temporarily Stop Screen Updates
The line `Application.ScreenUpdating = False` temporarily stops the screen from updating, making the process faster.Set Error Handling
`On Error Resume Next` allows the code to continue even if an error occurs, preventing the program from stopping unexpectedly.Loop Through the Selected Range
`For Each myRng In Selection` iterates through each selected cell.Add "OK_" to the Start of Each Cell's Content
`myRng = "OK_" & myRng.Value` adds "OK_" to the beginning of each cell’s content.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`).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.
この記事が気に入ったらサポートをしてみませんか?