- 日時: 2011/03/28 15:20
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[ファイル入出力][グリッド関係][] * * キーワード:CSV,MSHFlexgrid,,,, * ***********************************************************************************
----------------------------------------------------------------------------------- Line Input # ステートメントを使ってのCSVファイルの読込表示 - 花ちゃん 2007/09/14 ----------------------------------------------------------------------------------- データに合せて固定列・固定行等の設定は変更して下さい。 あくまでも、CSV ファイルの表示例のサンプルなので、表示速度等に拘るなら他の方法を 使って下さい。
Private Sub Form_Load() '------------------------------------------------- 'コントロール類の初期設定 Form1.Move 0, 0, 9000, 4000 With MSFlexGrid1 .Move 45, 45, 5500, 3400 .FixedRows = 1 .FixedCols = 0 .Rows = 1 .Cols = 0 .AllowUserResizing = flexResizeBoth .RowHeightMin = 300 End With '------------------------------------------------- 'CSV ファイルを読み込み MSFlexGrid に表示 Dim intFileNo As Integer 'ファイルNo Dim TextLine As String Dim CellsData As Variant Dim lngCount As Long Dim i As Long intFileNo = FreeFile 'シーケンシャル入力モードで Test.csv をオープン 'ファイルのPATHは別途設定して下さい。 Open "Test.csv" For Input As #intFileNo Do Until EOF(intFileNo) 'EOF(intFileNo)が True になるまで実行 Line Input #intFileNo, TextLine '1行全体を変数に読み込む TextLine = Replace(TextLine, Chr$(34), "") ' "" を取り除く CellsData = Split(TextLine, ",") 'カンマ区切りで列データを分割 If MSFlexGrid1.Cols < UBound(CellsData) + 1 Then 'データの列数に合せて、MSFlexGrid の列数を設定 MSFlexGrid1.Cols = UBound(CellsData) + 1 End If lngCount = lngCount + 1 '行数をカウント MSFlexGrid1.Rows = lngCount '行数を追加 For i = LBound(CellsData) To UBound(CellsData) 'MSFlexGrid のセルにデータを書込み MSFlexGrid1.TextMatrix(lngCount - 1, i) = CellsData(i) Next i Loop Close #intFileNo End Sub
|