教えてください。
アクセスレポートのテキストボックスをそのサイズを変えずに文字を縮小する(エクセルの書式設定の縮小して全体を表示にすると同じように)にはどうしたらよいのでしょうか。
ネットで検索したら あったのですがうまくいきませんでした。
以下引用
****************************
以前作成したことのある枠内に収まるようフォントサイズを
自動調整する関数です。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
レポート中の文字を自動縮小したい (ACCESS 2003)
Access(アクセス)
-
Accessで文字列の長さによって、フィールドの幅を自動で合わせる方法
Excel(エクセル)
-
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
-
4
アクセス2016のレポートで、テキストボックスの文字を自動で改行(縮小)させたい。
Access(アクセス)
-
5
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
6
Accessのフォーマット時イベント
その他(データベース)
-
7
Access2007、フォームのテキストボックスのサイズ調整に関して
その他(データベース)
-
8
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
エクセルをACCESSのレポートに変換する方法
その他(Microsoft Office)
-
11
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
12
accessのレポートを20行固定にする方法
Access(アクセス)
-
13
「パラメータが少なすぎます。3を指定してください。」って???
Access(アクセス)
-
14
アクセスでレポート作成時にデータを横に並べたいとき
その他(データベース)
-
15
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
16
ACCESSのレポートで書式設定が元に戻ってしまうのですが・・・
Access(アクセス)
-
17
アクセスのレポートでレコード数をカウントしたい
その他(データベース)
-
18
ACCESSでテーブルにあるチェックボックスを一括でYesにする方法を教えてください
Access(アクセス)
-
19
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
20
ACCESSでテーブルのチェックをまとめて外すには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスに表示する...
-
差し込み印刷された時の文字の...
-
ワードやエクセルで文字を縦長...
-
ワードで英単語を入力すると文...
-
A4サイズの用紙いっぱいに1文字...
-
Outlookメールで、画面の文字の...
-
箇条書きの数字の一部の色を変...
-
ワードで、文字の大きさを変え...
-
Gメールの画面すべてのフォント...
-
パソコンの表示フォントが突然...
-
Excel2007でハイパーリンクを設...
-
エクセルのテキストボックス内...
-
メモ帳での印刷時、文字の大き...
-
縦書きで途中から2行にする場合...
-
エクセル表の行がメール添付し...
-
Word 文書作成で、行末の一文...
-
excelで文字幅(倍率)を指定す...
-
Chem Drawの使い方
-
Win11 のメモ帳 文字サイズ
-
フォルダの表示 文字を大きく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスに表示する...
-
ワードで英単語を入力すると文...
-
パソコンの表示フォントが突然...
-
ワードやエクセルで文字を縦長...
-
差し込み印刷された時の文字の...
-
A4サイズの用紙いっぱいに1文字...
-
ワードで、文字の大きさを変え...
-
Outlookメールで、画面の文字の...
-
急に文字が細くて、見づらくな...
-
箇条書きの数字の一部の色を変...
-
セルの条件によってフォントサ...
-
excelで文字幅(倍率)を指定す...
-
Excel2007でハイパーリンクを設...
-
縦書きで途中から2行にする場合...
-
Chem Drawの使い方
-
エクセルのテキストボックス内...
-
Excelエクセル ヘッダの文字サ...
-
ホームページ上の文字が重なっ...
-
エクセル表の行がメール添付し...
-
WORDで、一行当たりの文字数を4...
おすすめ情報