Excelで最小フォントサイズを取得する方法

このQ&Aのポイント
  • Excelで表を作成している際に、印刷倍率に気をつけながら最小フォントサイズを取得する方法をVBAを使用して実現できます。
  • 表の範囲を選択し、実際使用されているフォントサイズと印刷倍率を考慮して最小フォントサイズを計算します。上付き文字は無視されます。
  • Excelのバージョンによらず、この方法を利用して表の最小フォントサイズを正確に取得することができます。
回答を見る
  • ベストアンサー

Excelで最小フォントサイズを取得したい

会社でExcel2000、自宅でExcel2003を使用しております。 仕事でExcelを使って表を作成しているのですが、 フォントサイズを印刷倍率に気をつけながら作成しなければなりません。 その際に、VBAを使って下記のようなことは出来ないでしょうか? 1:表の範囲を選択する(印刷範囲を選択するような感じで。なぜなら、表中のデータはその時その時でどこから始まりどこで終わるかが異なっているからです) 2:表中に使われてる最小フォントサイズを取得する。 (その際、印刷倍率と実際使用されているフォントサイズを考慮。例えば倍率が90パーセント、フォントサイズが10の時は10×90%=9ポイント、というふうに) ※この際、もし表中に上付き文字などが入っていた場合、上付き文字のサイズは無視する。 ちなみに、表は以下のようなものです。 (実際には「-」の部分に数値が入っている事もあります。) Table1 --------------------------------------------------- Day   1 2 3 4 5 6 7 8 9 10 11 12 13 --------------------------------------------------- Date  - - - - - - + - * - - - - - - --------------------------------------------------- *=an exception 当方、VBAは初心者です。 (記録~初歩的な構文は理解できます) とても困っております。 どうぞよろしくお願い致します。

  • ashtk
  • お礼率41% (10/24)

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

なぜフォントサイズを気にする必要があるか分かりませんが、困っておられるようなので、質問のマクロを書いてみました。 調べたい範囲を選択して、下のマクロを実行して下さい。 最小フォントサイズ:11 印刷倍率:90% 倍率考慮:9 のようなメッセージボックスを表示します。 1つのセル内のフォントが複数ある場合は無視しています。 モジュールの   '// 複数のフォントサイズが設定されている場合   '//   ・・・何もしていない   '  :   '  : の部分です。 For~Nextの『'』を削除すると、それなりに動くはずですが、意味があるかどうかは分かりません。 まずは、下のまま動かしてみてください。標準モジュールに貼り付けます。 Sub getMinimumFontSize()   Dim rg As Range     '// セル   Dim minFS As Integer   '// フォントの最小サイズ   Dim L As Integer     '// 文字カウンタ      minFS = 409 '// これが最大値(Excel2000)   For Each rg In Selection     '// 入力のあるセルのみを対象とする     If rg.Text <> "" Then       If IsNull(rg.Font.Size) Then         '// 複数のフォントサイズが設定されている場合         '//   ・・・何もしていない         'For L = 1 To Len(rg.Text)         '  If rg.Characters(L, 1).Font.Size < minFS Then         '    minFS = rg.Characters(L, 1).Font.Size         '  End If         'Next       Else         '// セルには単一のフォントサイズ         If rg.Font.Size < minFS Then           minFS = rg.Font.Size         End If       End If     End If   Next      '// メッセージ出力(計算によっては、倍率考慮=0 も出る)   MsgBox "最小フォントサイズ:" & minFS & vbLf & _       "印刷倍率:" & ActiveSheet.PageSetup.Zoom & "%" & vbLf & _       "倍率考慮:" & Int(minFS * ActiveSheet.PageSetup.Zoom / 100) End Sub

ashtk
質問者

お礼

ありがとうございます! 望みどおりのものができました。 >なぜフォントサイズを気にする必要があるか 実は、このような表を作成して顧客へ配布するのですが、 顧客の会社ごとによって使用できる最小フォントサイズが決まっており、しかも表が膨大になった場合、どうしても縮小をかけて表を作成して、それをいちいち計算してCKして・・・と大変だったもので、 どうにかVBAでクリアできないものかと日々悩んでおりました。 本当にありがとうございました!

関連するQ&A

  • エクセルのプルダウンのフォントについて教えてくださ

    現在あるDBを作成しており、抽出時のキーワードをプルダウン式にて選択できるようにしております。 その際、表全体が大きすぎたため画面表示を縮小している関係で、当然全体のフォントが小さくなってしまいました。 セル内のフォントは大きくできますが、プルダウンした文字の大きさを変えることができず非常に小さくて困っています。プルダウンリストの文字はどうすれば大きくなるのか、どなたかお教えていただけませんでしょうか。 ※添付した画面はサンプルで、実際には非常に大きな表となっております。 Windows7 Excel2007を使用しております。よろしくお願いいたします。

  • font sizeの最小値は1なのですか?

    文字の大きさをもっと小さくしたくて <font size=0.5> としてみましたが、1の時と大きさは変わりませんでした。 1が最小値なのでしょうか? また<font size=1>より小さくすることは不可能でしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • エクセルの資料のサイズについて。

    エクセル作成にあたり画面のサイズが大き過ぎて困っています。 教えてください。資料をエクセルで作っていますが倍率100%でやっているのですが他人の資料とは比べ物にならないくらい大きくなり60%位にならないと1枚の画面に入りません。また同じ100%の倍率で他人のフォントの大きさが 9でも適度な大きさでみえるのですいが私の100%の大きさの資料でフォント9で印刷するとちっちゃくて 見えません。1ページ全体を見るのにカーソル動かさなければなりません。 現在縮小60%にして文字の大きさ24位でちょうど良いくらいです。 なんとか全体を通常の100%にしてちょうどいい画面の入力で資料作成したいのですが 設定方法はどうすればいいでしょうか? 教えてください。 宜しくお願い致します。

  • エクセル 置き換えをするとセル内のフォントサイズが

    エクセルでフォントサイズがバラバラな文字列が入ってるセルで置き換えをすると セル内のフォントサイズが統一されてしまいました フォントサイズを統一させずに置き換えする事は可能でしょうか? VBAとかマクロをつかわなければならない時はできれば使い方を詳しくおしえて頂きたいです。

  • Outlookでのフォントサイズについて

    テキスト形式でOutlookを使っています。 新しくメールを書く際のフォトサイズを「ツール」→「オプション」→「作成」→「作成時のフォント」でサイズを指定したのですが、受信したメールに対して返信をする際に文字サイズが指定より小さく表示されます。なお返信ではなくて、新規にメールを作成する際には指定したフォントサイズで表示されます。 返信メールの際にも指定したフォントサイズで表示することはできないのですか?

  • エクセル 置き換えをするとセル内のフォントサイズが

    先ほど間違えてベストアンサーを出してしまったので連投失礼します。 エクセルでフォントサイズがバラバラな文字列が入ってるセルで置き換えをすると セル内のフォントサイズが統一されてしまいました フォントサイズを統一させずに置き換えする事は可能でしょうか? VBAとかマクロをつかわなければならない時はできれば使い方を詳しくおしえて頂きたいです。

  • フォントサイズが揃わない

    Excelで表作成しているのですが、書式設定で年、月、日、曜日を設定して入力していくとセルによりフォントサイズが揃わない所が出てきて困っています。なのでその列すべて選択してフォントサイズを選んで変えるも変化せずどうしたら揃うのか教えていただきたく思います。宜しくお願いします。 縦に2列(A,B)に同じ書式設定をしています。A列は同じフォントサイズで表示されています。

  • フォントサイズについて

    カッティングシートで切り文字を作成しています。 いつもはWordかPowerPointで文字や絵を作っているのですが、大きい文字を作るうえでフォントサイズに限界があります。 たとえばA4サイズの用紙に目一杯の文字を作りたい場合、どうしたらいいでしょうか? ちなみにビジネスでやっているのではなく、趣味の範囲です。ソフトなど持っていません。

  • エクセルでセルのフォントサイズを取得する関数?

    エクセル初心者です。 印刷したときにセル内の文字が全部印刷されるように、セルごとに文字数の上限をこえるとメッセージが出るようにしたいのですが。。 セルのフォントサイズを取得する関数ってあるのでしょうか? 

  • Excel フォント設定

    仕様OSはWindowsXP。エクセルはExcel2003です。 オプションの全般タブで フォント:「MS ゴシック」サイズ:「10」と設定しました。 エクセルを起動した状態で、「ファイル」⇒「新規作成」と選択した新規のブックには上記設定が適用されます。 が、ディスクトップ等で右クリックし「新規作成」⇒「Microsoft Excelワークシート」を選択した場合には、フォントは「MSP ゴシック」サイズは「11」となってしまいます。 上記場合にも、フォントは「MS ゴシック」サイズは「10」に設定したいのですが、どうしたらよいでしょうか? 宜しくお願いします。

専門家に質問してみよう