| 
    
     |  | ▼福岡人 さん、皆さん、こんにちは。 
 >最近ユ−ザ−ホ−ムの勉強を始めました。ラベルの文字の位置(高さ)を中心にもっていたたいのですが、左上で固定したままです。いろいろしてみましたが、ラベルの枠設定の調整はあるようですが、文字の位置設定がよくわかりません。どなたかご存じでしたら教えていただけないでしょうか。
 
 残念ながら、縦方向の文字の位置調整はできません。
 よって、ラベルの高さ(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を実行してみてください。
 
 それぞれのラベルがコードのコメントに記述したような配置で
 表示されると思います。
 
 確認してみてください。
 
 |  |