6月の翻訳者イベント
の運営実行委員の一員をしています。
イベントまであと2か月を切りまして、具体的な準備が進んでいます。
チームワークで物事を進めていくってすごいですね。
それぞれの担当者がイベントの一部を作り上げ、全体として大きく進めています。
私が手伝っているものの1つに、「名刺サイズ広告 」という企画があります。
これは、今回の参加者(おそらく500名になると思います)全員に向けた自己PR企画なのです。
名刺サイズの広告スペースを販売(1枠1000円)し、そこに自由にメッセージを書き込みます。
標準となる配置や文字サイズは以下のとおりです。
ただし、この広告スペースの記載に以下のような制約があります。
・5行しか書くことができない
・各行の文字サイズ、フォント種類、配置は決まっている
・ただし、各行の文字数が多くなったら自動的に文字サイズを縮小させて1行に表示させる
とはいっても、この制約があった場合に、実際に文字サイズがどうなるのか予測が難しいですよね。
そこで、以下のようなサンプルをつくってみました。
いくつかの例を作って、その場合の文字数や文字サイズを表示しました。
こうすれば、1行に入る文字数が少しイメージできるかもしれません。
この説明資料を作るときに、マクロをつかいました。やっと本題に入ります(笑)。
つまり、選択されている文字列の文字数とフォントサイズを調べて、それを吹き出しにして表示するというものです。
▼このマクロでできること
文字列を選択した状態で実行すると、選択された文字列中の全角文字数、半角文字数、選択された文字の先頭文字のフォントの大きさを調べます。
▼マクロの解説
選択された文字列の情報を収集します。
以前の記事でも紹介したとおり、ComputeStatisticsメソッドを使います。Len関数で文字数を求めると、Wordの文字カウント機能で表示される数値と異なりますからご注意ください。
表内の文字数を計算する
表内の文字数を計算する(その2)
青文字部分でWord文書の左上に吹き出しを挿入して、その中に文字情報を入力します。
▼マクロ
Sub フォント情報を表示する()
Dim myZenkaku As Long
Dim myHankaku As Long
Dim myMojisu As Long
Dim myPoint
With Selection.Range
myZenkaku = .ComputeStatistics(wdStatisticFarEastCharacters)
myMojisu = .ComputeStatistics(wdStatisticCharactersWithSpaces)
myHankaku = myMojisu - myZenkaku
myPoint = .Characters.First.Font.Size
End With
ActiveDocument.Shapes.AddShape(msoShapeRectangularCallout, 0, 0, 90, 55). _
TextFrame.TextRange.Text = "全角:" & myZenkaku & " 文字" & vbCr & _
"半角:" & myHankaku & " 文字" & vbCr & _
myPoint & " ポイント"
End Sub
▼関連記事
【Wordマクロ】1行に収まるようフォントサイズを縮小する
イベントまであと2か月を切りまして、具体的な準備が進んでいます。
チームワークで物事を進めていくってすごいですね。
それぞれの担当者がイベントの一部を作り上げ、全体として大きく進めています。
私が手伝っているものの1つに、「名刺サイズ広告 」という企画があります。
これは、今回の参加者(おそらく500名になると思います)全員に向けた自己PR企画なのです。
名刺サイズの広告スペースを販売(1枠1000円)し、そこに自由にメッセージを書き込みます。
標準となる配置や文字サイズは以下のとおりです。

ただし、この広告スペースの記載に以下のような制約があります。
・5行しか書くことができない
・各行の文字サイズ、フォント種類、配置は決まっている
・ただし、各行の文字数が多くなったら自動的に文字サイズを縮小させて1行に表示させる
とはいっても、この制約があった場合に、実際に文字サイズがどうなるのか予測が難しいですよね。
そこで、以下のようなサンプルをつくってみました。
いくつかの例を作って、その場合の文字数や文字サイズを表示しました。

こうすれば、1行に入る文字数が少しイメージできるかもしれません。
この説明資料を作るときに、マクロをつかいました。やっと本題に入ります(笑)。
つまり、選択されている文字列の文字数とフォントサイズを調べて、それを吹き出しにして表示するというものです。
▼このマクロでできること
文字列を選択した状態で実行すると、選択された文字列中の全角文字数、半角文字数、選択された文字の先頭文字のフォントの大きさを調べます。
▼マクロの解説
選択された文字列の情報を収集します。
以前の記事でも紹介したとおり、ComputeStatisticsメソッドを使います。Len関数で文字数を求めると、Wordの文字カウント機能で表示される数値と異なりますからご注意ください。
表内の文字数を計算する
表内の文字数を計算する(その2)
青文字部分でWord文書の左上に吹き出しを挿入して、その中に文字情報を入力します。
▼マクロ
Sub フォント情報を表示する()
Dim myZenkaku As Long
Dim myHankaku As Long
Dim myMojisu As Long
Dim myPoint
With Selection.Range
myZenkaku = .ComputeStatistics(wdStatisticFarEastCharacters)
myMojisu = .ComputeStatistics(wdStatisticCharactersWithSpaces)
myHankaku = myMojisu - myZenkaku
myPoint = .Characters.First.Font.Size
End With
ActiveDocument.Shapes.AddShape(msoShapeRectangularCallout, 0, 0, 90, 55). _
TextFrame.TextRange.Text = "全角:" & myZenkaku & " 文字" & vbCr & _
"半角:" & myHankaku & " 文字" & vbCr & _
myPoint & " ポイント"
End Sub
▼関連記事
【Wordマクロ】1行に収まるようフォントサイズを縮小する