前提・実現したいこと
テキストボックスの文字サイズを一定に表示したい
発生している問題・エラーメッセージ
テキストボックスに文字を入力すると3番目だけテキストボックスが小さくなってしまう。
試したこと
原因箇所は特定できていて、ディスプレイの解像度やサイズに対応してフォームのサイズを自動で調整する処理が原因になっています。
この処理をコメントにすると一定で表示されますが、どうしてもサイズ調整の処理は消すことはできません。
3番目のテキストボックスの「Height」を1上げれば一定のサイズにはなりますが少し高さが違うのが気になります。
フォームのサイズ調整をしてもテキストボックスの文字サイズを一定に表示する処理の書き方をご教授いただけませんか?
該当のソースコード
VBA
1'UserForm 2Private Sub UserForm_Initialize() 3 Dim originSize 4 ' 今の画面サイズを記憶 5 originSize = Application.WindowState 6 ' 画面拡大 7 Application.WindowState = xlMaximized 8 9 ' フォームサイズ設定 10 Me.Zoom = SizeChange(Me.Zoom) 11 Me.Width = SizeChange(Me.Width) 12 Me.Height = SizeChange(Me.Height) 13 14 ' 画面縮小 15 If originSize = xlNormal Then Application.WindowState = xlNormal 16End Sub
VBA
1'InputAssistModule 2' ディスプレイ解像度によってフォームのサイズを変更処理 3Function SizeChange(value As Double) As Double 4 SizeChange = value * ((Application.Height * FORMSIZE_RATIO) / UserForm.Height) 5End Function
VBA
1'ConstModule 2Public Const FORMSIZE_RATIO As Double = 0.7 ' フォームのサイズ割合
それぞれ別のモジュールに記載しています。
補足情報(FW/ツールのバージョンなど)
Excel 2019
Windows 10
それぞれのテキストボックスのフォント設定は同じですか。
はい、同じです。
一つのテキストボックスを3つに複製しても、一つ目と三つ目の場所を入れ替えても一番下のものだけ文字サイズが小さくなります。
提示のコードだと構文エラーで実行できないのですが。
Sub内ではPublic宣言できないので。
Publicを削除すると、今度は、Formが変数宣言されていないとエラーになります。
実際のコードを提示してもらえないと、外部の人間には原因の特定は難しいです。
伝わりやすくするためにプログラムを省略していました。申し訳ありません。「該当のソースコード」を編集しました。
InputAssistModule というのは標準モジュールでしょうか。
UserFormのことろで変数が定義されていないというエラーになり実行できません。
InputAssistModuleとConstModuleは標準モジュールです。
UserFormはフォーム名なので、フォーム名を「UserForm」にしていただければ実行できると思います。m(_ _)m
画像のようなユーザーフォームを作成して、フォーム名「UserForm」で実行してみましたが、症状を再現できませんでした。
テキストボックスのフォント設定(フォント名、フォントサイズなど)を提示してもらえますか。あと、テキストボックスの高さ、幅も。
私も「Me.Zoom = Me.Zoom * 2」を実行してみた所、症状は出ませんでした。
InputAssistModuleでの処理が原因かもしれません。
なぜかわかりませんが、「FORMSIZE_RATIO = 0.7」を「FORMSIZE_RATIO = 0.8」にすると一定の文字サイズで表示されました!
Excel側のバグなのでしょうか?
FORMSIZE_RATIO = 0.7 に戻して、
ユーザーフォームにコマンドボタンを配置して、下記のコードを記述して、ユーザーフォームを表示させてコマンドボタンをクリックして、イミディエイトウィンドウに出力された結果をコピペしてもらえますか。
Private Sub CommandButton1_Click()
Debug.Print Me.Zoom
Debug.Print Me.TextBox3.FontName
Debug.Print Me.TextBox1.FontSize
Debug.Print Me.TextBox2.FontSize
Debug.Print Me.TextBox3.FontSize
End Sub
こちらでそれと同じ設定をして症状を再現出来たら、Excel側のバグの可能性が高いですね。
87
MS UI Gothic
11.25
11.25
11.25
上記が出力された結果です。
ZOOMの値をいろいろ変更して試してみたら、設定値によっては文字サイズが異なって見える場合がありますね。
Excel側のバグの可能性がありそうですね。
やはり文字サイズが異なっているんですね!
いろいろと試していただいてありがとうございました。そして拙い情報でお時間をかけさせてしまい申し訳ありませんでした。m(_ _;)m今回はバグの可能性があるということで自己解決にさせていただきます。
回答1件
あなたの回答
tips
プレビュー