|
分類:[VB.NET/VB2005]
こんにちは。初歩的な質問となるのですがアドバイスをよろしくお願いします。
環境ですが、VB2005 Pro+EXCEL2003です。 雛形となるエクセルシートを開いてSheet1にデータをペタペタ貼り付けます。 Sheet2は帳票となります。(Sheet1にデーが張り付けば帳票は完成となります)
困っている内容は、エクセルに貼り付けて表示までOKなのですが、 Sheet1がアクティブシートになってしまいます。 Sheet2をアクティブシート(表として表示したいです)にしたいのですが、方法がわからず困っております。 よきアドバイスよろしくお願いします。
下記がソースです。
Imports Microsoft.Office.Interop Imports System.Runtime.InteropServices ------------------------------------ Dim xlBookPath As String = "" Dim xlBookName As String = ""
'エクセルを表示する Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlRange As Excel.Range
'エクセル帳票を出力する xlBookName = "雛形.xls" xlBookPath = MyDirectoryPath & "\Excel\" & xlBookName
xlBook = xlBooks.Add(xlBookPath) xlSheet = xlApp.Worksheets("DATA") xlApp.DisplayAlerts = False
'エクセルシートを消す xlSheet.Range("1:1").ClearContents() xlSheet.Range("3:65536").ClearContents()
'--ペタペタとセルに貼り付ける-- xlsPos = "D1" xlRange = .Range(xlsPos) xlRange.Value = SQLReader("SQLの項目").ToString Marshal.ReleaseComObject(xlRange) : xlRange = Nothing '−−省略−−
◎ここでSheet2をアクティブにしたいです。
xlApp.Visible = True Exit Sub
'−−省略−− 'エラー処理 Marshal.ReleaseComObject(xlSheet) : xlSheet = Nothing Marshal.ReleaseComObject(xlBook) : xlBook = Nothing Marshal.ReleaseComObject(xlBooks) : xlBooks = Nothing If Not xlApp Is Nothing Then xlApp.Quit() Marshal.ReleaseComObject(xlApp) : xlApp = Nothing End If GC.Collect()
VB6.0の頃は、 ワークシート("シート名称").Activate で書いていた記憶があるのですが、 同じようにしてもエラーになりました。 WEBでいろいろと探したのですが、昔の書き方?は沢山見つかりましたが Office.Interopを使用した書き方を見つけることができませんでした。
よきアドバイスお願いします。
|