• ベストアンサー

太字に設定されているセルの個数を求めたい

数式だけで、太字に設定されているセルの個数を求めたいのですが、 可能でしょうか? イメージとしては下記のようなものです。 ○=太字に設定されているセルと仮定  A  B  C  D 1○  × ○  ×  太字は2個 2○  ○ ○  ×  太字は3個 3×  × ×  ○  太字は1個

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

  • ベストアンサー
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

数式(関数)では、書式情報を調べることはできません。 VBAを使用する必要があります

naktak
質問者

お礼

ありがとうございます。

その他の回答 (3)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

#3です。 4.0マクロを使う方法もあります。 「但し、4.0マクロがいつまでサポートされるかは不明で、遠くない将来に使えなくなってしまう可能性があることはご承知おきください。」 だそうです。 以下のキーワードでWeb検索すれば、いろいろ情報が得られます。 Excel 4.0 マクロ GET.CELL 関数 太字

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.3

おはようございます。 ユーザー定義関数による方法の一例です。 注)セル内の文字が全て太字の場合のみ対応してます。   セル内の一部の文字が太字の場合はカウントしません。 '==========標準モジュールに記述================= Function CountFontBold(argRng As Range) As Long   Dim c As Range   Dim buf As Long   Application.Volatile   buf = 0   For Each c In argRng     If c.Font.Bold = True Then       buf = buf + 1     End If   Next c      CountFontBold = buf End Function '==========使い方================================ ' A1:D1の範囲で太字に設定されているセルの個数は ' =CountFontBold(A1:D1) '以下はおまけです。 '上記の関数では、どこかのセルが再計算されないと実行されません。 'そこで、以下も記述しておけば、セルを太字に変更し、セルの選択範囲を移動した時点で再計算→上記関数の実行ができます。 '=============シートモジュールに記述======================= Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Application.CutCopyMode = False Then     ActiveSheet.Calculate   End If End Sub

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

次のようなマクロで対応することになるでしょう。 E列に太字のセルの個数を表示させます。 Sub 太字判定() Dim RowPos As Integer Dim ColPos As Integer Dim i As Integer m = Range("A65536").End(xlUp).Row For RowPos = 1 To m For ColPos = 1 To 4 If Cells(RowPos, ColPos).Font.Bold = True Then i = i + 1 End If Next Cells(RowPos, 5).Value = i i = 0 Next End Sub

関連するQ&A