コンボボックスで項目を右揃えで表示
                                                         玄関へお回り下さい。
コンボボックス・リストボックスで項目を右揃えで表示する     (220)
    Option Explicit   'SampleNo= WindowsXP VB6.0(SP5) 2002.11.17(220)

Private Sub Command1_Click()
'右詰表示
  With Combo1
    .Clear
    .Move 190, 400, 3000
    .FontName = "MS ゴシック"
    .FontSize = 12
    .AddItem StrRightSet(24, "あ1いう")
    .AddItem StrRightSet(24, "あ12いうえ")
    .AddItem StrRightSet(24, "あ123いうえお")
    .AddItem StrRightSet(24, "あ1234いうえおか")
    .AddItem StrRightSet(24, "あ12345いうえおかき")
  End With
  With List1
    .Clear
    .Move 190, 1740, 3000, 1260
    .FontName = "MS ゴシック"
    .FontSize = 12
    .AddItem StrRightSet(24, "あ1いう")
    .AddItem StrRightSet(24, "あ12いうえ")
    .AddItem StrRightSet(24, "あ123いうえお")
    .AddItem StrRightSet(24, "あ1234いうえおか")
    .AddItem StrRightSet(24, "あ12345いうえおかき")
  End With
End Sub


'=================================================
'コンボボックス・リストボックスで右詰表示する関数
'=================================================
' result = = StrRightSet(StrLen, Mystring)
' 引数 StrLen  :半角換算の文字列数(Setする文字列の長さ)
' 引数 MyString :元の文字列
' 戻値 result  :変換後の文字列(前方に空白を付加した)
'-------------------------------------------------
Private Function StrRightSet(ByVal StrLen As Integer, _
               ByVal Mystring As String) As String
  Dim N As Integer
  N = LenB(StrConv(Mystring, vbFromUnicode))
  StrRightSet = String$(StrLen - N, " ") & Mystring
End Function
 
文字数を調べて前方にスペースを埋め込んでもいいのだが、全角文字・半角文字が混在すると、
不揃いになるので、半角換算で文字数を調べスペースを付加している。        





2002/11/21