このサイトは、Access/ExcelとBitシリーズを活用し、顧客管理やマーケティングを行うために知っていると便利な実用的テクニックをご紹介するサイトです。
  各種データベースと連携 (Access/Excel/SQL Server/Oracle)
掲載記事
関連サイト






前のページへ戻る
Newsbit社ホームページ
Bitシリーズ
データベス制作業務
コンサルティング業務
ホームページ制作
インターネットマーケティングニュース
BitplusPRO
BitMailPRO
BitDelete
BitSearch
迷惑メール削除専用ソフトウェア
緊急連絡網用エクセルファイル
受注管理データベース
アドレス管理データベース
今回は、Accessのレポートで、テキストボックスの幅に合わせて文字のフォントサイズをコントロールして印刷する方法について説明します。

レポートでテキストボックスの幅は決まってしまいますので、フォントサイズが一定ならば印字する文字数が多い場合、当然ですが溢れた部分は印刷されません。

Excelでは、セルの書式設定の文字列の制御で次の画像のように[縮小して全体を表示する(K)]をチェックすることで、自動的にフォントサイズをコントロールして長い文字列も印刷されますが、Accessではそうした機能がないようです。(あるのかも知れませんが知りません。)

そこで、今回はAccessでレポートのテキストボックスの幅に収まるフォントサイズまで自動縮小する方法を作成してみました。

注意事項
Access2000で今回の方法を使用する場合、必ずOffice 2000 Service Release 1/1a (SR-1/SR-1a)以上を入手してファイルを更新しておいてください。
更新していませんと、フォントサイズのコントロールが正しく行われません。
制御方法
レポートのテキストボックスのプロパティには、Excelのようにフォントサイズをコントロールする項目は見当たりませんので、次のようにしてコントロールします。

レポートのテキストボックスのサイズを調べ、そこに表示する文字列の基準フォントでの必要なサイズと比較してテキストボックスに収まるかどうかをチェックします。
収まらない場合、フォントサイズを1段階づつ小さくしてテキストボックスに収まるフォントサイズを割り出します。

具体的には、まず、次の画像のようにレポートをデザインビューで開いてください。

次に、詳細のグレーの帯の部分(ページヘッダーやページフッターではない)で右クリックすると次のようなポップアップメニュー(Access2000の場合)が表示されますので、プロパティ(P)をクリックしてください。

次のような画面が表示されますので、フォーマット時にマウスを移動します。

右側にボタンが2つ表示されていますので、その中の右側のボタンをクリックします。
ビルダの選択の画面が表示されますので、コードビルダを選択して[OK]します。
次のようなコードを入力する画面が表示されます。

そこに、以下のコードを入力してください。

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
'テキストボックスの幅に合わせてテキストのフォントサイズをコントロールする。

    Dim strTxt As String
    Dim i As Integer
    Dim lngBoxSize As Long
    Dim lngTxtSize As Long

    Me.FontSize = 10
    Me.[テキスト0].FontSize = 10
    
    strTxt = Me.[テキスト0].Text
    i = Me.[テキスト0].FontSize
    
    lngBoxSize = Me.[テキスト0].Width
    lngTxtSize = Me.TextWidth(strTxt)

    Do While lngBoxSize < lngTxtSize
        Me.[テキスト0].FontSize = i - 1
        Me.FontSize = i - 1
        lngTxtSize = Me.TextWidth(strTxt)
        i = i - 1
    Loop
    
End Sub
次のようになればOKです。

コードの中でMe.[テキスト0]の部分は、レポートのテキストボックスの名前ですから適宜変更してください。
まとめ
今回ご紹介した方法は、フォントサイズを小さくしてテキストボックスの幅に収まるようにするため、テキストボックスのサイズにぴったりというわけにはいきません。
たとえば、フォントサイズが10でほんの少しテキストボックスに入りきらない場合などフォントサイズは9になりますが、文字列の長さが長い場合などテキストボックスの幅よりだいぶ短くなってしまうこともあります。

また、一つのレポート内でサイズをコントロールしたいテキストボックスが複数ある場合などは、ひつ工夫必要です。

   
  前のページへ戻る
  ▲ページトップへ
Copyright&copy;2008 Newsbit co.,ltd.All Rights Reserved.