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

投稿時間:2003/12/18(Thu) 09:54
投稿者名:たけ
Eメール:
URL :
タイトル:
SPREAD6.0Jについて
VB6.0 Win2000 SPREAD6.0Jで開発しています。

ここで質問することではないのかもしれないのですが、
SPREADに詳しい方はいないかなと思い、投稿しました。

SPREADのイベントで境界線Clickというものはないのでしょうか?
Excelと同じようなセル幅自動調整を作りたいと思っているのですが、
境界線のクリックが見つかりません。
返答お願いします。

投稿時間:2003/12/18(Thu) 11:38
投稿者名:ak
Eメール:
URL :
タイトル:
Re: SPREAD6.0Jについて
> VB6.0 Win2000 SPREAD6.0Jで開発しています。
>
> ここで質問することではないのかもしれないのですが、
> SPREADに詳しい方はいないかなと思い、投稿しました。
>
> SPREADのイベントで境界線Clickというものはないのでしょうか?
> Excelと同じようなセル幅自動調整を作りたいと思っているのですが、
> 境界線のクリックが見つかりません。
> 返答お願いします。

RowHeightChange、ColWidthChangeイベントがそれに近いイベントだと思います。
詳細はヘルプを参照してください。

サンプルを記述しておきます。
注:サンプルはSpread3.0Jで作成しました。
  6.0Jでも問題なく動くと思いますが6.0Jでは他に方法があるかもしれません。

'(*.frm) フォームにvaSpreadを1個配置してください。
Option Explicit

Private Type ptypSizeChange
    ctColFlg   As Boolean
    ctRowFlg   As Boolean
    ctCol1      As Long
    ctCol2      As Long
    ctRow1      As Long
    ctRow2      As Long
End Type

Private ptSzChg   As ptypSizeChange

Private Sub Form_Load()
    Dim ii      As Integer
    Dim lTmp    As Long
    
    Call psbVarInit '変数初期化
    
    'フォーム初期設定
    With Me
        .Width = 5715
        .Height = 3840
    End With
    
    'スプレッド初期設定
    With vaSpread1
        .Top = 15
        .Left = 15
        .Width = 5580
        .Height = 3420
        .MaxRows = 10
        .MaxCols = 3
        .FontSize = 12
        lTmp = .MaxTextRowHeight(0)
        .RowHeight(0) = lTmp
        'データ作成
        For ii = 1 To 10
            Call .SetText(1, ii, String(Int(Rnd * 10) + 1, Chr(47 + ii)))
            Call .SetText(2, ii, String(Int(Rnd * 10) + 1, Chr(64 + ii)))
            Call .SetText(3, ii, String(Int(Rnd * 10) + 1, Chr(74 + ii)))
        Next ii
    End With
End Sub

Private Sub vaSpread1_Click(ByVal Col As Long, ByVal Row As Long)
    Call psbVarInit '変数初期化
End Sub

Private Sub vaSpread1_ColWidthChange(ByVal Col1 As Long, ByVal Col2 As Long)
     With ptSzChg
        .ctColFlg = True
        .ctCol1 = Col1
        .ctCol2 = Col2
     End With
End Sub

Private Sub vaSpread1_RowHeightChange(ByVal Row1 As Long, ByVal Row2 As Long)
    With ptSzChg
        .ctRowFlg = True
        .ctRow1 = Row1
        .ctRow2 = Row2
    End With
End Sub

Private Sub vaSpread1_DblClick(ByVal Col As Long, ByVal Row As Long)
    Dim lTmp    As Long
    Dim ii      As Long
    
    With vaSpread1
    
        '列幅変更
        If ptSzChg.ctCol1 <= Col And ptSzChg.ctCol2 >= Col And _
           ptSzChg.ctColFlg And Row = 0 Then
            For ii = ptSzChg.ctCol1 To ptSzChg.ctCol2
                .Col = ii
                If .UserResizeCol <> 2 Then
                    lTmp = .MaxTextColWidth(ii)
                    .ColWidth(ii) = lTmp
                End If
            Next ii
        End If
        
        '行幅変更
        If ptSzChg.ctRow1 <= Row And ptSzChg.ctRow2 >= Row And _
           ptSzChg.ctRowFlg And Col = 0 Then
            For ii = ptSzChg.ctRow1 To ptSzChg.ctRow2
                .Row = ii
                If .UserResizeRow <> 2 Then
                    lTmp = .MaxTextRowHeight(ii)
                    .RowHeight(ii) = lTmp
                End If
            Next ii
        End If
        
        'Row、Colを元に戻す
        .Row = Row
        .Col = Col
    
    End With
    
    Call psbVarInit '変数初期化
    
End Sub

'変数初期化
Private Sub psbVarInit()
    With ptSzChg
        .ctColFlg = False
        .ctCol1 = 0
        .ctCol2 = 0
        .ctRowFlg = False
        .ctRow1 = 0
        .ctRow2 = 0
    End With
End Sub

投稿時間:2003/12/19(Fri) 15:38
投稿者名:たけ
Eメール:
URL :
タイトル:
Re^2: SPREAD6.0Jについて
akさんありがとうございました。
無事作ることができました。