ID非公開

2020/9/22 20:51

22回答

エクセル、マクロの質問です。 Selectcase を使って、 ①文字列の左端一文字が太字(Bold)の場合は… ②文字列左端一文字が標準の場合は…

エクセル、マクロの質問です。 Selectcase を使って、 ①文字列の左端一文字が太字(Bold)の場合は… ②文字列左端一文字が標準の場合は… と組み立てる式を教えてください。 selectcaseを使った後はTRUE で数式を入れてformula=〜と続けようと思います。 フォントプロパティをどう表現したらいいのか分からず困っています。 太字(Bold)をうまく表現できないので、 フォントの色を使って条件分岐させようかと 思ったりもしました。 勉強のために、 ①文字列左端一文字が赤色のフォントである場合は… ②文字列左端一文字が黒(標準)の場合は… と条件分岐させる表現も教えて下さい。 これもフォントプロパティの書き方だと思うのですが、お教えください。

Visual Basic | Excel27閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

1

書き直して再投稿します。 Select Caseを使うとソースが冗長になるので、Withを使う例です。 どうしてもSelect Caseとするならば、既出の回答を参照するか、ご自分でどうぞ。 Sub test() Dim i As Long, tmp As Range For i = 1 To 4 Set tmp = Cells(i, "A").Offset(0, 1) With Cells(i, "A").Characters(1, 1).Font '①文字列の左端一文字が太字(Bold)の場合は… If .Bold = True Then tmp = "OK" '②文字列左端一文字が標準(BoldでもItaricでも無い)の場合は... If .Bold = False And .Italic = False Then tmp = "OK" '③文字列左端一文字が赤色のフォントである場合は… If .Color = vbRed Then tmp = "OK" '④文字列左端一文字が黒(標準)の場合は… If .ColorIndex = 1 Then tmp = "OK" End With Next i End Sub

1人がナイス!しています

ThanksImg質問者からのお礼コメント

もっともっとVBAを使いこなしていきたいと思いました。深く知れば知るほど、もっともっと使えるようになりたいと思いました。 かの松下幸之助が、人間の3大欲求が、 「食欲、性欲、睡眠欲」だとしたら、第4番目の欲求は「知りたいと思う欲求だ」と言ったことがとてもスッとふに落ちます。 ありがとうございました。

お礼日時:9/25 0:46

その他の回答(1件)

0

先行回答者がおりますので、参考にしてください。 Sub 太文字() Dim f As Font '選択セルの1文字目を設定 Set f = Selection.Characters(Start:=1, Length:=1).Font '文字種分岐 Select Case f.Bold Case True MsgBox "太字です" Case False MsgBox "並字です" End Select End Sub Sub 赤文字() Dim f As Font '選択セルの1文字目を設定 Set f = Selection.Characters(Start:=1, Length:=1).Font '文字色分岐 Select Case f.Color Case RGB(255, 0, 0) MsgBox "赤文字です" Case RGB(0, 0, 0) MsgBox "黒文字です" End Select End Sub