プロが教える店舗&オフィスのセキュリティ対策術

VBA TEXTBOXテキストボックスの文字の大きさが一定にならない。

ユーザーフォームでテキストボックスが上から下へ並べて50個あります。
動作は、違う所にあるデータベースを読み取ってテキストボックスに入れていくのですが、その文字は全て10桁の数字で、それぞれのテキストボックスに入れます。

実行後、フォントの種類、サイズは一緒にしてるのに、なぜか、同じ大きさにならず、凸凹になります。

プロパティのフォントサイズは、一緒です。

いろいろやってはみるものの、原因がわかりません。
となたか、分かる方いますか?

A 回答 (3件)

こんばんは、


なんででしょう、フォント種類、サイズに関係ありそうですが、事象はありますね。

>その文字は全て10桁の数字でデータベースを読み取ってテキストボックスに入れていく
面倒ですが、こんな方法で回避できるかな?
Private Sub UserForm_Initialize()
TextBox1.AutoSize = False
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.AutoSize = True
End Sub
初めから、Trueで良ければ、簡単ですが、、入力文字数で変わるのは、ダメかと

こちらの方が簡単かも

原因の可能性がある、UserFormの読込みと
Textboxのプロパティ読込のタイミングによる不具合の可能性 回避

文字サイズを2回定義、リセット処理をする方法
Font.Size = 10 の場合

Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:01") ' 1秒Sleep
For i = 1 To 50
Controls(“TextBox” & i).Font.Size = 1
Controls(“TextBox” & i).Font.Size = 10
Next i
End Sub

事象を現在再現できないのでテストしていません。
    • good
    • 0
この回答へのお礼

ありがとうございます。非常に助かりました。

お礼日時:2020/09/25 06:21

凸凹の意味が横方向の長さのことを言っているでしたら


プロポーショナルでないフォントを指定してみてください。
    • good
    • 1

VBAのコントロールは何故かうまく表示してくれないのですよね…


倍率を変えるとずれたりしますし。

多く配置すると、たまに不安定になる事もあるので出来るだけセル操作で動くように作っています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A