• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAFontStyle取得について)

VBAでのFontStyle取得方法とエラー処理について

このQ&Aのポイント
  • エクセルVBAで特定の行が太字になっているかを確認するために、FontStyleを取得する方法について教えてください。
  • FontStyleを取得する際に、行の中の一部が太字になっていない場合にエラーが発生し、処理が中断されます。エラーの処理方法についても知りたいです。
  • 行や列のFontStyleを確認する際、ループ処理以外にも他の方法はあるのでしょうか?無駄なループ処理を避ける方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • vba_2007
  • ベストアンサー率100% (1/1)
回答No.1

セル1つ1つをチェックする必要があれば、ループでまわす必要があると思います。 指定の範囲が全て、太字かどうか。という状況だけ チェックしたいのであれば、IsNull()で確認すればどうでしょう。 ただし、罫線のチェック等になると、逆に、全てが指定の罫線で なくてもTrueになることがありますので、このような場合は、 やはりループでまわすしかないと思われます。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 > ループを使わずに処理をする方法 規定のメソッドやプロパティーで対応できないことであれば、ループ 処理は必須です。 したがって、「ループを使わずに処理をする」ではなく、いかに効率的に ループに処理をするかという点で回答してみます。 Excel2002 以降に限定されますが、FindFormat を使ってみては? ' // フォントが太字に設定されているセルを検索して選択する Sub Sample()   Dim r     As Range   Dim rFound   As Range   Dim sFirstAddr As String   With Application.FindFormat     .Clear     .Font.Bold = True   End With   Set r = Cells.Find(What:="", _             LookIn:=xlValues, _             LookAt:=xlPart, _             SearchOrder:=xlByRows, _             SearchFormat:=True)   If r Is Nothing Then     MsgBox "該当なし"   Else     Set rFound = r     sFirstAddr = r.Address     Do       Set rFound = Union(rFound, r)       ' FindNext は使わない XL2002 対策       ' http://support.microsoft.com/kb/282151/ja       Set r = Cells.Find(What:="", _                 After:=r, _                 SearchFormat:=True)     Loop Until r Is Nothing Or r.Address = sFirstAddr     If Not rFound Is Nothing Then       rFound.Select     End If   End If    End Sub

関連するQ&A