FlexGridコントロールの列の幅自動調整

解決


しん  2001-11-10 01:22:03  No: 75025

初めまして、しんと申します。

1つのセルにデータを入力した時に、
データがセルの幅に収まりきれ無い為、
データ全文が表示され無い場合に
自動的に幅を調整する方法はあるのでしょうか?

教えて下さい。

以上、宜しくお願い致します。


NM  2001-11-12 23:59:42  No: 75026

少々強引めですが、以下の自作プロシージャがそのまま使えます。
気に入れば、、、の話ですが。

'=====================================================================
'処理内容   グリッドの指定列のカラム幅を最長文字列に合わせて、AutoFitする。
'引数       lTargetCol  (I/ )指定列位置
'           oObjGrid    (I/O)対象のグリッド
'           [vMinLen]   (I/ )セル幅の最小値(※ 省略化)
'戻り値     なし
'=====================================================================
Sub SGridColumnAutoFit(lTargetCol&, oObjGrid As MSFlexGrid, Optional vMinLen)
    
    Dim i
    Dim dTmpLen#        'テンポラリーLength
    Dim dMaxLen#        '最大Length
    Const ciCelLen% = 120
    
    With oObjGrid
    
    If .Rows < 1 Or .Cols < 1 Then Exit Sub
    
    '引数(vMinLen)省略
    If IsMissing(vMinLen) Then vMinLen = 0
    
    '最大Length初期値設定
    dMaxLen = Val(vMinLen)
    
    For i = 0 To .Rows - 1
        'テンポラリーLength取得
        dTmpLen = ciCelLen * LenB(StrConv(.TextMatrix(i, lTargetCol), vbFromUnicode))
        '最大Lengthかの判断
        If dTmpLen > dMaxLen Then dMaxLen = dTmpLen
    Next i
    
    'セル幅を最長文字列に合わせて設定
    'AutoFit
    .ColWidth(lTargetCol) = dMaxLen
         
    End With
    
End Sub


しん  2001-11-14 20:50:03  No: 75027

できました〜!!!!

ありがとうございました!!!!!

今後も宜しくお願い致します!!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加