SAK 図書館
VB テクニック編16 - Excel XLS シート読み込み、XLS シート書き込み
■SAK 関数利用規程 ・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。 ・著作権明示部分の改編は認めない。 ・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや プログラムを開発することは自由です。 ・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、 その他有償プロダクトとして配布・販売するには、私の許可が必要です。 (無償のフリーソフトウェアなら、自由に配布しても良い。) ・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は 賠償しません。 ■Excel XLS シート読み込み ・XLS シートを読み込んで、VB 内で様々な処理を行うことができる。 次の例では、XLS シート内のデータを CSV ファイルに変換出力している。 シートのセルを参照するには、cells を使用すると便利である。 (Excel 読み込み) Dim fnm As String Dim fnm2 As String Dim rec As String Dim i As Long Dim j As Long Dim exl As Object fnm = "g:\tmp\test.xls" fnm2 = "g:\tmp\test.csv" Set exl = CreateObject("Excel.Application") exl.Application.Visible = True exl.Application.Workbooks.Open FileName:=fnm Open fnm2 For Output As #1 Len = 32000 For j = 1 To 65536 If exl.Cells(j, 1) = "" Then Exit For rec = "" For i = 1 To 256 If exl.Cells(j, i) = "" Then Exit For rec = rec & Chr(&H22) & exl.Cells(j, i) & Chr(&H22) & "," Next If Right(rec, 2) = Chr(&H22) & "," Then rec = Left(rec, Len(rec) - 1) Print #1, rec Next Close #1 exl.Application.DisplayAlerts = False exl.Application.Quit ■Excel XLS シート書き込み ・CSV ファイルを読み込んで、Excel シートに展開。 XLS ファイルに保存するには、次のようにします。 但し、コードのゼロ埋め処理はしていません。 (Excel 書き込み) Dim fnm As String Dim fnm2 As String Dim rec As String Dim i As Long Dim j As Long Dim k As Long Dim exl As Object fnm = "g:\tmp\test.csv" fnm2 = "g:\tmp\test.xls" Set exl = CreateObject("Excel.Sheet") exl.Sheets(1).Name = "test" exl.Application.Visible = True exl.Windows.Arrange ArrangeStyle:=1 k = GetCntCSV(fnm) Open fnm For Input As #1 Len = 32000 j = 1 Do Until EOF(1) For i = 1 To k Input #1, rec exl.worksheets(1).Cells(j, i).Value = rec Next j = j + 1 Loop Close #1 exl.saveas fnm2 ■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料