コンラッドは、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に適用されます。