ハミッシュは困難な課題に直面しています。彼は、多数のExcelワークブックで使用されているデフォルトのフォントを変更する必要があります。彼は100を超えるワークブックを持っており、それらのワークブックで使用されているフォントは、企業の委任によって指定された新しいフォントに変更する必要があります。 (あなたは企業の義務がどのようになり得るかを知っています!)

このタスクに手動で取り組む方法は、各ワークブックをロードし、各ワークシートに目を通し、セルを選択して、それらのセルのフォントを変更することです。ハミッシュのタスクをさらに複雑にするには、各ワークブックの複数のフォントを変更する必要があります。つまり、フォントA、B、C、およびDが与えられた場合、ハミッシュはフォントAをCに、フォントBをDに変更する必要があります。

この問題に取り組む最善の方法は、マクロを使用することです。

読み込み、検索、変更が非常に多いため、作業をマクロに任せるだけで意味があります。次のマクロがその役割を果たします:

Sub ChangeFontNames()

Dim vNamesFind     Dim vNamesReplace     Dim sFileName As String     Dim Wkb As Workbook     Dim Wks As Worksheet     Dim rCell As Range     Dim x As Integer     Dim iFonts As Integer     Dim sPath As String

'Change these lines as appropriate     'These are the fontnames to find     vNamesFind = Array("Arial", "Allegro BT")

'These are the fontnames to replace     vNamesReplace = Array("Wingdings", "Times New Roman")

'This is the folder to look for xls files     sPath = "C:\foldername\"



Application.ScreenUpdating = False     iFonts = UBound(vNamesFind)

If iFonts <> UBound(vNamesReplace) Then         MsgBox "Find and Replace Arrays must be the same size"

Exit Sub     End If     sFileName = Dir(sPath & "*.xls")

Do While sFileName <> ""

Set Wkb = Workbooks.Open(sPath & sFileName)

For Each Wks In Wkb.Worksheets             For Each rCell In Wks.UsedRange                 For x = 0 To iFonts                     With rCell.Font                         If .Name = vNamesFind(x) Then _                             .Name = vNamesReplace(x)

End With                 Next             Next         Next         Wkb.Close(True)

sFileName = Dir     Loop     Application.ScreenUpdating = True     Set rCell = Nothing     Set Wks = Nothing     Set Wkb = Nothing End Sub

独自のブックでマクロを使用するには、いくつかのことを行う必要があります。まず、変更するすべてのブックが1つのフォルダーに保存されていることと、フォルダーの名前がわかっていることを確認してください。次に、マクロ内で、マクロの先頭近くに定義されている変数を変更します。 vNamesFind配列とvNamesReplace配列の要素を変更して、それぞれ検索および置換するフォントの名前と一致させます。次に、sPath変数を変更して、ワークブックを含むフォルダーへのフルパスが含まれるようにする必要があります。

(パスの末尾のバックスラッシュを忘れないでください。)

マクロを実行すると、フォルダー内の各ブックが順番に読み込まれます。

次に、各ワークブックの各ワークシートを調べて、すべてのセルを調べます。セルに検出するフォントの1つがある場合、そのセルはそれぞれの置換フォントに置き換えられます。マクロがブックで完了すると、マクロが保存され、次のブックが処理されます。

新しいワークシートでこの種の問題を回避することに関心がある人は、Excelでスタイルを使用する方法を検討する必要があります。スタイルはいくつでも定義して、ブック全体で使用できます。後で特定のセルの書式を変更する必要がある場合は、基になるスタイルを変更するだけです。 (スタイルは_ExcelTips._の他の問題でカバーされています)

注:

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

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

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