• 締切済み

VBからExcelファイルへの書き込み方法

VB2005およびExcel2003を使用して、5分おきに測定データをExcelファイルに書き込んでいます。現行1回1回Excelファイルを起動してデータを書き込みして閉じてを繰り返しており、Excelファイルを起動するだけでも時間がかかりパフォーマンスがおちています。 そこで初めにExcelを起動しておき、その間データを書き込み最終データを書き込んだ時点でExcelを閉じるということができるでしょうか?教えてください。

みんなの回答

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.3

簡単に出来ますよ。 Excelファイルを起動してデータを書き込みして後、閉じなければいいだけです。 閉じる作業は最後に1回すれば良いだけの話です。

aioi_k
質問者

補足

回答ありがとうございます。もう少し詳細に教えていただきたいのですが、1回目OPENした後、2回目以降の書き込み方法を教えてください。 現在以下のように書いています。 Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlFilePath As String = "xxxx.xls" Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) Dim xlCells As Excel.Range Dim xlRange As Excel.Range xlCells = xlSheet.Cells xlRange = xlCells(3, 12) xlApp.DisplayAlerts = False xlSheet.SaveAs(xlFilePath) xlApp.DisplayAlerts = True 'xlSheet の解放 'xlSheets の解放 'xlBook を閉じる 'xlBook の解放 'xlBooks の解放 'Excelを閉じる 'xlApp を解放

回答No.2

私も #1 さんと同じ。 CSV なり、独自フォーマットのテキストファイルに書き出し、Excel で読み込むのは別のタイミングに別のトリガーで行うようにします。 これならば Excel 側で読み込み後に何か処理をさせたいのなら Excel VBA 側に実装できますし。 # 例えばグラフ化とか書式化して印刷とか。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

私だったら・・ CSVファイルに追記書き込みして終了後にExcelに読み込んで変換します。

aioi_k
質問者

お礼

回答ありがとうございました。 私も同様の考えなのですが、請負元の仕様でして・・・

関連するQ&A