• ベストアンサー

Access97で、文字数によってフォントのサイズを変えたい。

はじめまして。仕事でDBを作成しているのですが、行き詰まってしまいました。 レポートで、ある1つのフィールドを表示しているのですが、 データによっては、文字数が少なかったり多かったりします。 それによってフォントを大きくしたり小さくしたりできますでしょうか? (文字数が多いとフォントは小さく、文字数が少ないとフォントは大きく) ぜひ教えて下さい。お願いします。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

とりあえず、「印刷時拡張」プロパティを「はい」にすると、印刷時に、行数に応じてテキストボックスが縦方向に広がります。これが使えるんであればこっちを使った方が綺麗な仕上がりになりますね。 用紙幅がきっちりと決まってる場合など上記の方法が使えない場合には、仰るように文字数に応じてフォントサイズを変えるVBAを用意します。 1:レポートをデザインビューで開き、 2:詳細を右クリック、プロパティを表示し、 3:イベントのフォーマット時を[イベント プロシージャ]にする。更にその右の[...]をクリック 4:出てくる画面で以下のようにコーディングする Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)  If Len(Nz(Me![フィールド名], "")) >=20 Then '20字以上なら   Me.テキストボックスの名前.FontSize = 7 'フォントを7ポイントに  Else   Me.テキストボックスの名前.FontSize = 9 'それ以外(=19字以下)なら9ポイント  End If End Sub ちなみに、上例では半角も全角も同じく1文字としてカウントします。 半角=1文字、全角=2文字としてカウントする場合は、コードをこんな感じに書き換えてください。 If LenB(StrConv(Nz(Me![フィールド名], ""),vbFromUnicode)) >=40 Then '20字以上なら 質問等ありましたら、補足欄にお書きください。

minima
質問者

お礼

ARCさん、どうもありがとうございました! 教えていただいた方法(VBA)でやってみたところ うまくいきました。 また何かありましたら教えてくださいね。