|
▼福岡人 さん、皆さん、こんにちは。
>最近ユ−ザ−ホ−ムの勉強を始めました。ラベルの文字の位置(高さ)を中心にもっていたたいのですが、左上で固定したままです。いろいろしてみましたが、ラベルの枠設定の調整はあるようですが、文字の位置設定がよくわかりません。どなたかご存じでしたら教えていただけないでしょうか。
残念ながら、縦方向の文字の位置調整はできません。
よって、ラベルの高さ(Heightプロパティ)と文字の大きさ(Font.Sizeプロパティ)
を使って程よい大きさを求めて(計算して)配置しなくてはなりません。
例として、
ユーザーフォーム(Userform1)に
ラベルを3つ配置(Label1〜Label3)してください。
このUserform1のモジュールに
'=================================================================
Private Sub UserForm_Initialize()
Dim wk As Double
With Label1
.Height = 42: .Width = 180
.SpecialEffect = fmSpecialEffectSunken
End With
With Label2
.Height = 42: .Width = 180
.Font.Size = 9
.SpecialEffect = fmSpecialEffectSunken
End With
With Label3
.Height = 100: .Width = 180
.Font.Size = 33
.SpecialEffect = fmSpecialEffectSunken
End With
' ここまでは サンプルラベルの設定
With Label1 '文字サイズをラベルの高さにあわせる
.Font.Size = .Height - 1.5
.Caption = "Label1"
End With
With Label2 'ラベルの高さを文字サイズに合わせる
.Height = .Font.Size + 1.5
.Caption = "Label2"
End With
With Label3 'ラベルの高さを文字サイズの約3倍に設定し、文字を縦方向の中心に配置
.Height = .Font.Size * 3 + 1.5
wk = Int(.Height / (.Font.Size * 2))
.Caption = ""
For idx = 1 To wk
.Caption = .Caption & vbCrLf
Next
.Caption = .Caption & "Label3"
End With
End Sub
標準モジュールに
'=======================================
sub main()
userform1.show
end sub
としてmainを実行してみてください。
それぞれのラベルがコードのコメントに記述したような配置で
表示されると思います。
確認してみてください。
|
|