Excelでスモールキャップスを模倣する(Microsoft Excel)
コンラッドは、Excel内のWordの「スモールキャップス」機能を模倣したいと考えています。彼がこれを行うと考えることができる唯一の方法は、セル内のすべての文字をステップスルーするマクロを開発することです。文字が小文字で11ptの場合、マクロは文字を大文字の9ptに変更する必要があります。
文字が大文字(または文字ではない)の場合、影響を受けることはありません。問題は、コンラッドが説明されている方法でセル内の個々の文字のフォーマットに影響を与える方法を知らないことです。
マクロを使用してセル内の特定の文字のみに影響を与える場合、各セルにはアクセスおよび変更できる独自のCharactersコレクションがあることに注意してください。コレクション内の各要素は、ご想像のとおり、セル内の1文字を表します。
これにより、現在セルにあるものを調べるマクロをまとめることができます。文字が現在小文字の場合は、その文字だけを大文字に変換して、その文字のフォントサイズを小さくします。
Sub SmallCaps() Dim rCell As Range Dim sWords As String Dim sCharacter As String Dim x As Long 'go through each cell in selection For Each rCell In Selection 'Don't want to work on formulas If Not rCell.HasFormula Then sWords = rCell.Value 'Get the cell contents For x = 1 To Len(sWords) 'Act on each letter sCharacter = Mid(sWords, x, 1) If sCharacter >= "a" And sCharacter <= "z" Then 'sCharacter is a lowercase letter With rCell.Characters(Start:=x, Length:=1) 'Decrease the font size by 2 .Font.Size = .Font.Size - 2 'Make character uppercase .Text = UCase(sCharacter) End With End If Next End If Next End Sub
このマクロは、実行時に選択されたセルに対して機能します。
セルに数式が含まれていないことを確認し(数式はスキップされます)、セル内の小文字に変更を加えます。
このようなマクロを使用することには欠点があり、それらに注意する必要があります。最大の欠点は、セル内の内容が実際に変更されることです。完了すると、書式設定によってスモールキャップスのように見える場合でも、セルにはすべて大文字のテキストが含まれます。これは、後でマクロを2回実行するときに問題が発生する可能性があり、Excelの校正ツール(スペルチェッカーなど)がすべて大文字の単語に対して機能しないことを意味します。 (ただし、Excelは、そのような単語のスペルチェックを行うように構成できます。)
欠点があるため、まったく異なるアプローチを取ることをお勧めします。スモールキャップスが必要なセルに使用するフォントを変更します。 Webで「スモールキャップスフォント」(引用符なし)を検索すると、多くの候補を見つけることができるはずであり、それらの多くは無料で入手できます。これがあなたが好きなものを持っているかもしれない1つのサイトです:
https://www.fontsquirrel.com/fonts/list/tag/small%20caps
必要なフォントを(このソースまたは他の信頼できるソースから)ダウンロードして、システムにインストールするだけです。 Excelを再起動すると、フォントがセルの書式設定に使用できるようになります。このようなフォントを使用するようにフォーマットされたセルは、実際のセルの内容が大文字と小文字が混在している場合でも、テキストをスモールキャップスとして表示します。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(653)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。