質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

4937閲覧

VBA 文字列中に太字があるかを判定したい

jiaetakoga

総合スコア96

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/03/25 07:50

VBAについて、どれだけ調べて試してもできず、sampleコードをご教示頂きたく。

A1~D1のセルにそれぞれ
A1:あいうえお ※「いう」が太字
B1:かきくけ ※「こ」が太字
C1:しすせそ ※「さ」が太字
D1:たちつてと ※太字無し
が入っています。

それぞれのセルに太字が含まれていれば、下の行(A2~D2)に”〇”を記載できるようなものを作りたいと思っています。
(結果はA2~C2が”〇”となります)

Midで区切って判定しようと思ってもうまくいかず、
以上のようなマクロを書く際、どのように書いたらいいのかご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

以下のように.Characters(1, .Characters.Count).Font.Boldの内容により
1文字ずつ確認せずとも文字列中にboldがあるかどうか判定可能です。
(※Boldと非boldが混在した場合はNullが返ります。)

VBA

1With Worksheets("Sheet1") 2 For cntCol = 1 To 4 3 Dim hasBoldChars 4 With .Cells(1, cntCol) 5 hasBoldChars = .Characters(1, .Characters.Count).Font.Bold 6 hasBoldChars = IsNull(hasBoldChars) Or hasBoldChars 7 End With 8 9 If hasBoldChars Then 10 .Cells(2, cntCol).Value = "〇" 11 End If 12 Next 13End With

投稿2020/03/25 09:06

編集2020/03/25 11:24
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Rangeオブジェクトのcharactersプロパティを使用すれば可能です。

もしA1セルに abc (bが太字)という文字列が入っていたとして

VBA

1Debug.Print Range("A1").Characters(1,1).Font.Bold ' 1文字目 2Debug.Print Range("A1").Characters(2,1).Font.Bold ' 2文字目 3Debug.Print Range("A1").Characters(3,1).Font.Bold ' 3文字目

結果
False
True
False

投稿2020/03/25 08:23

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

太字の情報は格納先が違います。

VBA

1For i = 1 To 5 2 Cells(1, 1).Characters(i, 1).Font.Bold = True 3Next i 4

このようにすれば最初の5文字が太字になります。
つまり、一文字づつfor文で回して一文字づつ調べていく必要があります。
フォントについては奥が深いので、頑張って勉強してください。

投稿2020/03/25 08:29

stdio

総合スコア3307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問