2023.09.10
Excelはプロパティで設定することでセルの大きさよってフォントのサイズが自動変更できますが、Accessではそのように簡単にはできません。でも、フォントサイズが自動的に切り替えられる機能がほしいですね。実は、VBAで解決できます。
【AD】
サンプル
テーブル「栄養成分テータテーブル」のデータをフォーム「栄養成分データ表」に表示します。
「栄養成分のデータ表」の「食品名」のテキスト枠は文字の大きさを10ポイントに設定してあります。
フォントサイズが変わらないと
このテキスト枠の大きさでは最大29文字まで表示されますが、下図のように30文字以上はきれいに表示されません。
*「文字数」は「食品名」の文字数を表示しています。
フォントサイズを変える方法
詳細な説明は省略します。
フォームをデザインモードで開いて「詳細」のプロパティを開きます。
「描画時」の[...]ボタンをクリックして「ビルダーの選択」を表示させ、「コードビルダー」を選択するとエディタを開くのでコードを記述します。
プロパティの「絵画時」に[イベントプロシージャ]と表示されます。
データテーブルの「食品名」のデータは、フォームで設定したテキスト枠内にフォントサイズ10ポイントで1行に収まりますが、文字数の長いものでは50文字になるデータもあります。
すべてのデータに対応できるようにフォントサイズを小さくすると見にくくなるので、文字数によってフォントサイズを10→8→7ポイントと段階的に調整するようにします。
テキストデータの文字数を調べるために「Len」関数を使います。
Len( )の( )内にテキストの名称を入力します。
Lenの詳しい説明は、 こちら。
If条件で文字数によってフォントのポイントを切り替えます。
文字数が38以上で、7ポイントで2行で最大84文字表示できます。
文字数29以上で、8ポイントで1行に最大38文字表示します。
どれにもあてはまらないときは、1行に10ポイントで最大29文字表示します。
いかがでしょうか。フォントポイントが小さくなると見づらくなる欠点はありますが、文字が見えなくなるよりはいいかと。
【AD】