[リストへもどる]
一括表示

投稿時間:2003/12/08(Mon) 10:35
投稿者名:すけさん
Eメール:
URL :
タイトル:
MsFlexGridの列幅変更
MsFlexGridでたとえば、列に行っているデータの最大幅を列のWidthに設定する方法を
ご存知の方ご教授ください。
例えば、1列目で
1行目に「りんご」
2行目に「パイナップル」
3行目に「みかん」
と入っていたら、2行目の「パイナップル」が一番長いデータなので、
2行目の幅を1列目のWidthに設定する。

投稿時間:2003/12/08(Mon) 14:36
投稿者名:AK
Eメール:kuroki@desu.ne.jp
URL :
タイトル:
Re: MsFlexGridの列幅変更
> MsFlexGridでたとえば、列に行っているデータの最大幅を列のWidthに設定する方法を
> ご存知の方ご教授ください。
> 例えば、1列目で
> 1行目に「りんご」
> 2行目に「パイナップル」
> 3行目に「みかん」
> と入っていたら、2行目の「パイナップル」が一番長いデータなので、
> 2行目の幅を1列目のWidthに設定する。

こんにちわ。

一番長いデータを調べても駄目です。

フォントによって文字の幅が変わりますので
文字列自体の幅を調べる必要があります。

下記にサンプルを記述しておきます。

では。

'(*.frm) フォームにMSFlexGridとCommandButtonを追加してください。
Option Explicit

Private Sub Form_Load()
    Dim ii  As Long

    'グリッド初期設定
    With MSFlexGrid1
        .Font.Name = "MS Pゴシック"
        .Font.Size = 12
        .Top = 15
        .Left = 5
        .Height = 4000
        .Width = 4000
        .Rows = 27
        .Cols = 2
        .ColWidth(0) = 300
        .ColWidth(1) = 1000
        'データ作成
        For ii = 1 To 26
            .Row = ii
            .Col = 1
            .Text = String(10, Chr(64 + ii))
        Next ii
    End With
    
    'ボタン初期設定
    With Command1
        Set .Font = MSFlexGrid1.Font
        .Caption = "幅変更"
        .Height = 400
        .Width = 1000
        .Top = 4030
        .Left = 15
    End With
    
    'フォーム初期設定
    With Me
        .BorderStyle = 1
        'グリッドと同じフォントを設定する
        Set .Font = MSFlexGrid1.Font
        .Height = 4845
        .Width = 4155
    End With
    
End Sub

Private Sub Command1_Click()
    Dim ii      As Long
    Dim lTmp    As Long
    
    lTmp = 0
    
    With MSFlexGrid1
        For ii = 1 To .Rows - 1
            .Row = ii
            .Col = 1
            '一番幅の広い文字列を調べ幅を取得する
            If lTmp < Me.TextWidth(.Text) Then
                lTmp = Me.TextWidth(.Text)
            End If
        Next ii
        
        '幅を設定する(余白を考慮して100プラスする)
        .ColWidth(1) = lTmp + 100
        
    End With
    
End Sub

投稿時間:2003/12/08(Mon) 16:53
投稿者名:すけさん
Eメール:
URL :
タイトル:
ありがとうございます!!
AKさん、花ちゃんさん>
早速、レスして頂きありがとうございます。
AKさんのサンプルを参考にさせていただき、上手くいきました。
レスが意外と早かったので驚きました。 助かりました!!