
教えてください。
アクセスレポートのテキストボックスをそのサイズを変えずに文字を縮小する(エクセルの書式設定の縮小して全体を表示にすると同じように)にはどうしたらよいのでしょうか。
ネットで検索したら あったのですがうまくいきませんでした。
以下引用
****************************
以前作成したことのある枠内に収まるようフォントサイズを
自動調整する関数です。
Public Sub AutoFontSize(Ctr As Control, IniFontSize As Integer)
Const MinFontSize = 4 '最小のフォントサイズ
Const d = 40 'うまく収まらずに改行されてしまう場合はここの数値を増やす
Dim rpt As Report, Str As String, W As Long
Dim arStr, i As Integer, H As Long
Set rpt = CodeContextObject
With rpt
If Ctr.ControlType = acTextBox Then
Str = Ctr.Text
ElseIf Ctr.ControlType = acLabel Then
Str = Ctr.Caption
Else
Exit Sub
End If
If Str = "" Then Exit Sub
.FontName = Ctr.FontName
If Ctr.Vertical Then
W = Ctr.Height - d
H = Ctr.Width - d
If InStr(1, .FontName, "@") = 0 Then
.FontName = "@" & .FontName
Else
.FontName = Mid(.FontName, 2)
End If
Else
W = Ctr.Width - d
H = Ctr.Height - d
End If
arStr = Split(Str, vbCrLf)
Str = arStr(0)
For i = 1 To UBound(arStr)
If .TextWidth(arStr(i)) > .TextWidth(Str) Then Str = arStr(i)
Next
.ScaleMode = 1
If Ctr.FontBold = 1 Then .FontBold = True
.FontSize = IniFontSize
Do Until rpt.FontSize = MinFontSize
If W > .TextWidth(Str) Then
Exit Do
End If
.FontSize = .FontSize - 1
Loop
Do Until rpt.FontSize = MinFontSize
If H > .TextHeight("A") * (UBound(arStr) + 1) + Ctr.LineSpacing * UBound(arStr) Then
Exit Do
End If
.FontSize = .FontSize - 1
Loop
Ctr.FontSize = .FontSize
End With
End Sub
使い方は、
前記の関数を標準モジュールに作成します。
レポートのセクションのフォーマット時イベントで、
AutoFontSize Me.テキストボックス名, 12
というように記述します。
第2引数は、フォントサイズの初期値です。
枠内に収まりきらないときは、収まるサイズまで縮小します。
ただし、Const MinFontSize = 4 で指定したサイズまでです。
*******************
というのをそのままコピーして試してみたのですが、
「マクロがみつかりません」というエラーがでてしまいました。
何か他に簡単な方法もしくは上記の表現を補足わかりやすくしてくださるようお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示

No.1
- 回答日時:
詳細は見ていませんが//ぱっと見で
>レポートのセクションのフォーマット時イベントで、
>AutoFontSize Me.テキストボックス名, 12
>というように記述します。
関数の呼び出しに()かっこが抜けていませんか?
Public Sub AutoFontSize(Ctr As Control, IniFontSize As Integer)という関数なので
AutoFontsize(コントロール名,フォントサイズ)となるはず
的外れでしたらごめんなさい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
レポート中の文字を自動縮小したい (ACCESS 2003)
Access(アクセス)
-
アクセス2016のレポートで、テキストボックスの文字を自動で改行(縮小)させたい。
Access(アクセス)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
-
4
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
5
Accessで文字列の長さによって、フィールドの幅を自動で合わせる方法
Excel(エクセル)
-
6
アクセスのレポートで同ページ内で2つ同じ内容を表示するには?
Access(アクセス)
-
7
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
8
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
9
アクセスのレポートでレコード数をカウントしたい
その他(データベース)
-
10
アクセスでレポートの1印刷内に複数のレコードを表示させたい
Visual Basic(VBA)
-
11
AccessのフォームのテキストボックスにLOOKUPで表示したい
Access(アクセス)
-
12
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
13
Accessのコンボボックスでリストが選択できない
Word(ワード)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
16
アクセスのレポートで縮小印刷するには?
Access(アクセス)
-
17
ACCESSのレポートの表示がおかしい
Excel(エクセル)
-
18
角丸四角形を描きたい
Excel(エクセル)
-
19
アクセスで、レポートの幅がページの幅よりもよりも広い??
Access(アクセス)
-
20
レコード削除時に(サブ)フォームに表示される#Deleted"について"
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードで英単語を入力すると文...
-
ページ番号だけフォントサイズ14
-
差し込み印刷された時の文字の...
-
メッセージボックスに表示する...
-
Wordで目次のタブのフォントがC...
-
大学の教授から、A4用紙1ページ...
-
急に文字が細くて、見づらくな...
-
ワードの原稿用紙、文字ずれに...
-
A4サイズの用紙いっぱいに1文字...
-
メール印刷時の表示について教...
-
Excelエクセル ヘッダの文字サ...
-
ワードやエクセルで文字を縦長...
-
ワードで筆のような文字にしたい
-
エクセル表の行がメール添付し...
-
Wordについて
-
アクセスのレポートで文字縮小...
-
excelで文字幅(倍率)を指定す...
-
字をなぞるプリントを作りたい
-
wordで、半角の一行の文字数を...
-
白抜き文字の打ち方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードで英単語を入力すると文...
-
差し込み印刷された時の文字の...
-
ワードやエクセルで文字を縦長...
-
箇条書きの数字の一部の色を変...
-
メッセージボックスに表示する...
-
エクセル表の行がメール添付し...
-
パソコンの表示フォントが突然...
-
急に文字が細くて、見づらくな...
-
excelで文字幅(倍率)を指定す...
-
Chem Drawの使い方
-
Wordについて
-
Excel2007でハイパーリンクを設...
-
Excelエクセル ヘッダの文字サ...
-
A4サイズの用紙いっぱいに1文字...
-
縦書きで途中から2行にする場合...
-
セルの条件によってフォントサ...
-
ワードの原稿用紙、文字ずれに...
-
エクセル:1行のはずが2行にな...
-
エクセルのテキストボックス内...
-
Win11 のメモ帳 文字サイズ
おすすめ情報