VB.NETからACCESSのデータを抽出して、それをワークテーブルに保存して、
そのデータをExcelにはきだしたいです。
現状ワークテーブルからExcelへデータをエクスポートすることはできたのですが、
このやりかたでは罫線や合計欄が出力できないため、やり直しとなりました。
人に聞いた話ではまずExcelのテンプレートを作成して、
そこにワークテーブルのデータを流し込むらしいのですが、
いったい何のことなのかさっぱりです。
どなたか方法をご存知の方がいらっしゃいましたら教えてください。
私の環境は
VB.NET2003、ACCESS2000、Excel2002です。
参考になるかどうかわかりませんが、ADOを使用しています。
連続して投稿して申し訳ありません。はるかです。
どなたかExcelへ出力する方法はご存知ではないのでしょうか?
Excelへエクスポートできたといっても、Excelシートを仮想
データテーブルとして、SQLで出力しているだけなのです。
これ以外の方法をご存知の方がいらっしゃいましたらぜひ教えて下さい!!
.NETは始まったばかりなのでExcelまでまだ手が回らない
といった所が実情で....(^^;
要するに罫線や題名や色付けがされたテンプレートを用意して
Accessからのデーターをパディングしてリネームするということですか。
Excelの名前取得はボタンになっていますがあらかじめわかっていれば
ファンクションの中に埋め込みます。
Dim xlApp As New Excel.Application
Dim books As Excel.Workbooks
Dim book As Excel.Workbook
Dim sheets As Excel.Sheets
Dim sheet As Excel.Worksheet
Dim range As Excel.Range
Public Function Test(ByVal FileName As String)
books = xlApp.Workbooks
book = books.Open(FileName)
xlApp.DisplayAlerts = False
sheets = book.Worksheets
sheet = CType(sheets(1), Excel.Worksheet)
'xlApp.Visible = True
range = sheet.Cells
'データーの埋め込み例
Dim n, m As Integer
For n = 1 To 10
For m = 1 To 10
range(n, m) = Str(n) & ":" & Str(m)
Next
Next
End Function
Public Function TestClose(ByVal FileName As String)
'Excelを閉じる
sheet.SaveAs(FileName)
book.Close(False)
xlApp.DisplayAlerts = True
xlApp.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(range)
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets)
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
System.Runtime.InteropServices.Marshal.ReleaseComObject(books)
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
xlApp = Nothing
End Function
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
'テンプレートのファイルを開く
OpenFileDialog1.ShowDialog()
Test(OpenFileDialog1.FileName())
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
'リネームして書き込む
SaveFileDialog1.ShowDialog()
TestClose(SaveFileDialog1.FileName())
End Sub
大体これでうまくいくと思いますがExcelを閉じるところはもっと良い方法があるかも。
ツイート | ![]() |