
使用アプリ:Excel2007
VBAでオートシェイプ内の文字列を検索し、見つけた文字列の色を赤に変えたいと思っています。
検索文字列がアルファベットの場合は全角、半角、大文字、小文字の区別はなくしたいです。
検索文字列を「abc」 とし、オートシェイプ内に「abc(半角小文字)、abc(全角小文字)、ABC(半角大文字)、ABC(全角大文字)」という文字列があった場合、アルファベットだけが全て赤になるようにしたいのですが、ご教示いただけますでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
画像通り検索文字列をB3セルに入力するとします。
シートモジュールにしてください。
Sub Sample2()
Dim k As Long, myStr As String, mySp As Shape, myRng As Variant
If Range("B3") <> "" Then
myStr = StrConv(Range("B3"), vbNarrow)
For Each mySp In ActiveSheet.Shapes
Set myRng = mySp.TextFrame2.TextRange
If InStr(StrConv(myRng, vbNarrow), myStr) > 0 Then
For k = 1 To Len(myRng)
If Mid(StrConv(myRng, vbNarrow), k, Len(myStr)) = myStr Then
myRng.Characters(Start:=k, Length:=Len(myStr)) _
.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
Next k
End If
Next mySp
End If
End Sub
※ 質問文に
>全角、半角、大文字、小文字の区別はなく・・・
とありますので、少し面倒なコードになっています。
そして、複数含まれていても対応させるため
1文字ずつ舐めるように検索しています。m(_ _)m
大文字小文字が判別は、vbNarrowのあとに + vbLowerCase を付加することで解決しました。
大変助かりました。
どうもありがとうございました。
No.1
- 回答日時:
こんにちは!
VBAになりますが、一例です。
Sub Sample1() 'この行から//
Dim k As Long, mySp As Shape, myStr As String
For Each mySp In ActiveSheet.Shapes
For k = 1 To Len(mySp.TextFrame2.TextRange.Characters.Text)
myStr = Mid(StrConv(mySp.TextFrame2.TextRange.Characters.Text, vbNarrow), k, 1)
If myStr Like "[A-Z,a-z]" Then
mySp.TextFrame2.TextRange.Characters(Start:=k, Length:=1) _
.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
Next k
Next mySp
End Sub 'この行まで//
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 文字に半角が含まれて...
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
VBAでシングルクオート(8217)を...
-
IEからEdgeへの移行に伴うIMEの...
-
ログインする際のIDやパスワー...
-
全角数字を半角数字に変えたい...
-
Pythonにおける全角括弧の正規表現
-
Perlで半角英数字以外の入力を...
-
ホームページ・ビルダー2001で...
-
大文字と全角文字は同じ意味で...
-
改行のないテキストを指定バイ...
-
HTMLを作る際、%パーセントは...
-
改行のないテキストファイルに...
-
全角英数字の必要性が理解できない
-
半角/全角文字混在データの分...
-
Accessのテキストボックスの入...
-
正規表現で、特定の文字列を含...
-
【VBA】エクセルで値のみクリッ...
-
数字が全角、コンマなし
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
英数字のみ全角から半角に変換
-
全角英数字の必要性が理解できない
-
word差し込み印刷 半角カタカ...
-
COBOL・全角判定
-
エクセルにMicrosoft Barcode C...
-
エクセルでの”々”の扱い
-
メモ帳の段落の揃え方
-
エクセルの検索が正しくできな...
-
プログラミングでは、半角括弧...
-
全角入力
-
VB.net、テキストボックス入力...
-
ダブルコーテーションの置換
-
COBOLでの全角文字の判定をした...
-
Accessで日付や数値を全角で表...
-
「一角」って何でしょうか
-
半角/全角文字混在データの分...
-
Excelの中に全角ひらがな、漢字...
おすすめ情報
tom04さん、さっそくのご回答ありがとうございます。
私の質問の仕方が悪かったようで申し訳ありません。
ある特定の単語(漢字、ひらがな、カタカナ、アルファベット)を検索し、
オートシェイプ内に合致した文字列があった場合は、それを赤文字にしたいのです。
画像は実行後のイメージです。
お手数をおかけしますが、よろしくお願いします。