複数のワークブックのフォントの変更(Microsoft Excel)
ハミッシュは困難な課題に直面しています。彼は、多数の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以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link複数のワークブックのフォントを変更する。