トムは、Wordでは、検索と置換を使用して、出現するすべての単語を太字にすることができると正しく述べています。 (単語を検索し、太字の書式設定がオンになっている同じ単語に置き換えます。)彼はExcelで同じことをどのように行うことができるのか疑問に思います。

答えは、使用しているExcelのバージョンに一部依存します。 Excel 2002以降のバージョンのExcelを使用している場合、答えは簡単です。Wordで行うのと実質的に同じ方法で行います。次の手順に従ってください:

。 Ctrl + Hを押して、[検索と置換]ダイアログボックスの[置換]タブを表示します。

。 [オプション]ボタンをクリックして、ダイアログボックスを展開します。 (図1を参照)

。 [検索する文字列]ボックスに、太字にする単語を入力します。

。 [置換]ボックスに同じ単語を入力します。

。 [置換]ボックスの右側にある[フォーマット]ボタンをクリックします。 Excelは、[フォーマットの置換]ダイアログボックスを表示します。

。 [フォント]タブをクリックします。 (図2を参照)

。 [フォントスタイル]リストで、[太字]を選択します。

。 [OK]をクリックして、[フォントの置換]ダイアログボックスを閉じます。

。 [すべて置換]をクリックして、置換を実行します。

これは非常に簡単に見えますが、これらの手順により、セル内の単語だけでなく、セル全体の書式が変更されることを覚えておく必要があります。

したがって、「茶色」という単語を検索して置き換えると、「茶色」という単語を含むセルはすべて太字になります。つまり、単語だけでなくセル全体が太字になります。

古いバージョンのExcel(Excel97またはExcel2000)を使用している場合、またはセル内の単語のみに影響を与えたい場合、これらの手順は機能しません。代わりに、太字にするためにマクロに頼る必要があります。

基本的に、ワークシートを調べて何を変更できるかを決定するマクロが必要です。 (数式や数値の個々の単語や数字を太字にすることはできません。テキスト定数の単語レベルの書式を変更することしかできません。)

マクロが処理できるセルを見つけたら、セルを検索して目的の単語を探し、そのテキストを太字にする必要があります。次のマクロは、まさにこの戦略を実装しています。

Sub FindAndBold()

Dim sFind As String     Dim rCell As Range     Dim rng As Range     Dim lCount As Long     Dim iLen As Integer     Dim iFind As Integer     Dim iStart As Integer

On Error Resume Next     Set rng = ActiveSheet.UsedRange. _       SpecialCells(xlCellTypeConstants, xlTextValues)

On Error GoTo ErrHandler     If rng Is Nothing Then         MsgBox "There are no cells with text"

GoTo ExitHandler     End If

sFind = InputBox( _       Prompt:="What do you want to BOLD?", _       Title:="Text to Bold")

If sFind = "" Then         MsgBox "No text was listed"

GoTo ExitHandler     End If

iLen = Len(sFind)

lCount = 0

For Each rCell In rng         With rCell             iFind = InStr(.Value, sFind)

Do While iFind > 0                 .Characters(iFind, iLen).Font.Bold = True                 lCount = lCount + 1                 iStart = iFind + iLen                 iFind = InStr(iStart, .Value, sFind)

Loop         End With     Next

If lCount = 0 Then         MsgBox "There were no occurrences of" & _           vbCrLf & "' " & sFind & " '" & _           vbCrLf & "to bold."

ElseIf lCount = 1 Then         MsgBox "One occurrence of" & _           vbCrLf & "' " & sFind & " '" & _           vbCrLf & "was made bold."

Else         MsgBox lCount & " occurrences of" & _           vbCrLf & "' " & sFind & " '" & _           vbCrLf & "were made bold."

End If

ExitHandler:

Set rCell = Nothing     Set rng = Nothing     Exit Sub

ErrHandler:

MsgBox Err.Description     Resume ExitHandler End Sub

マクロは最初に、検索範囲をテキスト定数を含むセルに設定します。次に、変更が必要な単語の入力をユーザーに求めます。

入力すると、マクロは範囲内のすべてのセルの検索を開始します。各セルは、ターゲット単語が含まれているかどうかを確認するためにチェックされます。その場合、それらの文字の.Boldプロパティが設定され、マクロは検索を続行します。

マクロは、行われた変更の数も追跡し、作業の最後に変更の合計を表示します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2414)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。