- 締切済み
VBからExcelファイルへの書き込み方法
VB2005およびExcel2003を使用して、5分おきに測定データをExcelファイルに書き込んでいます。現行1回1回Excelファイルを起動してデータを書き込みして閉じてを繰り返しており、Excelファイルを起動するだけでも時間がかかりパフォーマンスがおちています。 そこで初めにExcelを起動しておき、その間データを書き込み最終データを書き込んだ時点でExcelを閉じるということができるでしょうか?教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 7_7_7
- ベストアンサー率24% (115/469)
回答No.3
簡単に出来ますよ。 Excelファイルを起動してデータを書き込みして後、閉じなければいいだけです。 閉じる作業は最後に1回すれば良いだけの話です。
- temtecomai2
- ベストアンサー率61% (656/1071)
回答No.2
私も #1 さんと同じ。 CSV なり、独自フォーマットのテキストファイルに書き出し、Excel で読み込むのは別のタイミングに別のトリガーで行うようにします。 これならば Excel 側で読み込み後に何か処理をさせたいのなら Excel VBA 側に実装できますし。 # 例えばグラフ化とか書式化して印刷とか。
- nicotinism
- ベストアンサー率70% (1019/1452)
回答No.1
私だったら・・ CSVファイルに追記書き込みして終了後にExcelに読み込んで変換します。
質問者
お礼
回答ありがとうございました。 私も同様の考えなのですが、請負元の仕様でして・・・
補足
回答ありがとうございます。もう少し詳細に教えていただきたいのですが、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 を解放