
いつもお世話になっております。
この度、指定した文字を始点にスペースまで下線を引く
VBAについてご教示いただきたく質問させていただきました。
添付した画像を例としますと、セル内のみかんを始点にスペースまで
めろんを始点にスペースまでに下線を引きたいと思います。
マクロの記録を行ったところ
Sub Macro1()
'
' Macro1 Macro
Range("C3").Select
ActiveCell.FormulaR1C1 = "りんご みかん0120-1234-5678 めろん03-1234-5678 なし"
With ActiveCell.Characters(Start:=1, Length:=4).Font
.Name = "游ゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
With ActiveCell.Characters(Start:=5, Length:=17).Font
.Name = "游ゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
With ActiveCell.Characters(Start:=22, Length:=1).Font
.Name = "游ゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
With ActiveCell.Characters(Start:=23, Length:=15).Font
.Name = "游ゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("A1").Select
End Sub
となりました。
Characters(Start:=1, Length:=4)
ここの記述が重要だと思うのですが、
ここからどの様な形に組み込むのかのご教示をお願いします。
どうぞよろしくお願いいたします。

No.3ベストアンサー
- 回答日時:
質問文をそのまま利用させて頂いたので。
>With Range("C3")
>.Value = "りんご みかん0120-1234-5678 めろん03-1234-5678 なし"
>こちらの構文もセルの内容に合わせ変えなくてはならないのでしょうか?
With Range("C3")
' .Value = "りんご みかん0120-1234-5678 めろん03-1234-5678 なし" ←この行は削除しても構いません。
' 既にデータが入力されているのであれば。
If myReg.Test(.Value) Then
No.2
- 回答日時:
一例です。
Sub megu()
Dim myReg As Object
Dim m
Set myReg = CreateObject("VBScript.RegExp")
myReg.Pattern = "(みかん|めろん)\S+"
myReg.Global = True
With Range("C3")
.Value = "りんご みかん0120-1234-5678 めろん03-1234-5678 なし"
If myReg.Test(.Value) Then
For Each m In myReg.Execute(.Value)
With .Characters(Start:=m.Firstindex + 1, Length:=m.Length).Font
.Underline = xlUnderlineStyleSingle
End With
Next
End If
End With
End Sub
めぐみんさん、回答ありがとうございます。
こちらのVBAで「みかん」と「めろん」を始点に
スペースまでに下線を引く処理ができました。
ありがとうございます。
重ねて質問なのですが、例えばC3の内容にりんごとなしの
入力ではなく、異なる文字データが入力されている場合は
With Range("C3")
.Value = "りんご みかん0120-1234-5678 めろん03-1234-5678 なし"
こちらの構文もセルの内容に合わせ変えなくてはならないのでしょうか?
理想とします処理は下線を引く処理だけにしたいと思っております。
よろしくお願いいたします。
No.1
- 回答日時:
>指定した文字を始点にスペースまで下線を引く
1.指定とはどのようにして与える予定?
2.下線さえ引ければ良いと言う事?
3.スペースまでとあるけど『その手前』になるのかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力されたテキストが、全角か...
-
AfterEffectsでイージーイーズ...
-
GoogleChromeでレイアウトが左...
-
pixivの消えないブックマークタ...
-
XMLを作成してもタグしか表示さ...
-
プルダウン(リストボックス)の...
-
Excelのhtmでは、行が折り返さ...
-
プルダウンメニューの開く方向...
-
HTML を自動で改行してくれるツ...
-
AirTag(エアタグ)やその他GPS...
-
webページの有効期限が切れてい...
-
H1タグに改行の<br>を使う
-
表示中のURLなどをバッチファイ...
-
VBE でスペースと改行を見える...
-
テキストエリア内の改行もその...
-
品質表示タグが付いてない商品
-
タグ[コピーを保存する][変...
-
Python 3.12.2 か一番最新のパ...
-
htmlのボタンでF11を入力
-
XMLの改行方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
ASCII文字列以外を検出する正規...
-
ASP.NET TextBox 入力制限
-
JavascriptでIMEのON,OFF制御
-
なぜtabによるインデントはいけ...
-
C#のシリアル通信プログラムで...
-
JSONパース時に改行があるとエ...
-
氏名の入力チェックに全角スペ...
-
php でtabを空白に変換して表示...
-
教えてください
-
プログラミングの初歩の初歩を...
-
emacsによる字下げの方法
-
Eclipseの空白が変な...
-
リッチテキスト 余白
-
半角スペースを含む文字列を変...
-
stray '\\240' in programのエ...
-
Firefoxでのテキストエリアに入...
-
入力されたテキストが、全角か...
-
インデントをスペースにするメ...
-
カラムの末尾にスペースが入る
おすすめ情報