太字のデータを抽出、ExcelVBA

マクロで太字のデータを抽出する簡単な方法は?
太字のデータを抽出 ExcelVBA

ExcelVBA マクロ講座 76回

ワークシートのオートフィルターに太字はない

オートフィルターは条件でデータを抽出できる便利な機能です。
なんでもできるような気がしますが、データに書式が設定してあり、その書式がフォントを太字にするという場合など、 太字のデータだけを抽出しようと思ってもできません。
でも、少し柔軟に考えてみましょう。結果として太字データだけ抽出、あるいは除外して抽出できればいいのです。ちょっとマクロを知っていれば、簡単にできてしまいます。
(コードはコピーペーストで使ってください。)

【手動でやる場合】作業列を用意する

1.作業列を用意すると言っても、特別なことではなく、データと区別ができる1列を利用するだけです。 の行と同じ


太字のデータを抽出1

2. この列に一つ隣のデータが太字であるかどうかの判定結果を表示することにしましょう。 太字であるなら、True,そうでないときはFalseのように表示します。


太字のデータを抽出2

3. Excel関数の中に、IS関数という変数や式の状態をチェックする関数群があります。ISBLANK関数、ISNUMBER関数などです。 この中には、太字かどうかを判定する関数はありません。


太字のデータを抽出3

作業列を作っても、結局太字かどうかは、目視によって、チェックを入れる必要があります。大変ですね。

【ユーザー定義関数を作る】太字であるかどうかの判定をする関数

4. しかし太字であるかどうかの判定結果を手動でやるのは、これもまた大変です。
簡単なユーザー定義関数をさくっと作成してしまいましょう。
このままコピーして使えます。コピーなら3秒後には使えますね。
引数はCellで、型はRangeです。戻り値はブール型 (Boolean)です。 As Booleanを省略しても大丈夫です。

Function IsBold(Cell As Range) As Boolean 
IsBold = Cell.Font.Bold
End Function

太字のデータを抽出4

ISBOLD関数を使ってみる

5. D2セルに”=IS”と入力すると、頭にISのつく関数が表示されます。作成したユーザー定義関数「ISBOLD」もちゃんと表示されます。


太字のデータを抽出5

6. D2セルに”=ISBOLD("B2)”と入力して、下方向にコピーします。


太字のデータを抽出6

7. 作業列を含めた選択範囲にフィルターを設定します。


太字のデータを抽出7

8. 作業列にフィルターをかけます。太字を抽出したい場合は、TRUEにチェック、太字以外を抽出したい場合は、FALSE にチェックをいれます。


太字のデータを抽出8

9. 太字のデータだけを抽出しました。


太字のデータを抽出9