列の挿入及び削除 |
MSFlexGridの列の挿入及び削除 (039) | |
Private Sub Command8_Click() '列のインサートのメニュー Call sInsertCol(3, 1000) '3列目に幅1000の列を挿入 End Sub Private Sub sInsertCol(InsCol As Long, ColWid As Long) Dim i As Long Dim j As Long With MSFlexGrid1 .Visible = False .ColWidth(InsCol) = ColWid .Cols = .Cols + 1 '1列増やす 'このように必要により隣のセルの情報を引き継いで下さい。 .ColWidth(.Cols - 1) = .ColWidth(.Cols - 2) For i = 0 To .Rows - 1 .Row = i For j = .Cols - 1 To InsCol Step -1 '挿入列以降のデータを移動 'データを移動 .TextMatrix(i, j) = .TextMatrix(i, j - 1) If j = InsCol Then .TextMatrix(i, j) = "" '挿入列のデータをNullに設定 End If Next j Next i .Visible = True End With 'セル内の書式設定等は考慮しておりません。 End Sub |
|
Private Sub Command9_Click() '列の削除のメニュー Call sDeleteCol(3) '3列目を削除 End Sub Private Sub sDeleteCol(DelCol As Long) Dim i As Long Dim j As Long With MSFlexGrid1 .Visible = False For i = 0 To .Rows - 1 .Row = i For j = DelCol + 1 To .Cols - 1 '削除列以降のデータを移動 .TextMatrix(i, j - 1) = .TextMatrix(i, j) Next j Next i .Cols = .Cols - 1 .Visible = True End With 'セル内の書式設定等は考慮しておりません。 End Sub |
|
Private Sub Command12_Click() '列の入れ替えのメニュー Call sSwapCol(3, 5) '3列目と5列目を入替えます End Sub Private Sub sSwapCol(SwapCol1 As Long, SwapCol2 As Long) '列の入れ替えのプロシージャ Dim i As Long Dim ColData As Variant With MSFlexGrid1 .Visible = False '.ColWidth(InsCol) = ColWid For i = 0 To .Rows - 1 'データを退避 ColData = .TextMatrix(i, SwapCol1) 'データを移動 .TextMatrix(i, SwapCol1) = .TextMatrix(i, SwapCol2) '退避しておいたデータを移し変え .TextMatrix(i, SwapCol2) = ColData Next i .Visible = True End With 'セル内の書式設定等は考慮しておりません。 End Sub |
|
セル内の書式等は考慮しておりません。又最終列の削除等のエラー処理はしておりません。 各自の環境に合せて作り直して下さい。 |
2002/05/08