- 締切済み
VBによるExcelファイルの開き方を教えて下さい。
※VBプログラムからエクセルを起動し技術資料を作成するものです [1]新規ファイルをオープンした場合は、書き込みは正常に作動します。 [2]既設のファイルは、Shell関数でエクセルファイルをオープンしています。 [3]データ書き込みで、下記のエラーが発生します。 「NullReferenceExceptionはハンドルされませんでした。」 (オブジェクト変数又はWithブロック変数が設定されていません) [4]ファイルのオープンコードは下記のとうりです。 Private Sub newF_Open() Me.Hide() xlApp = CreateObject("Excel.Application") xlBook = xlApp.workbooks.add xlSheet = xlBook.sheets("sheet1") xlBook.application.Visible = True Me.Show() MsgBox("Excelファイルは開きましたか", 0, "確認") End Sub 'rbtNEWボタンでの変更記述 Private Sub oldF_Open() Dim Ret As Object Dim Shell As Object With OpenFileDialog1 .Title = "ファイルの選択" .CheckFileExists = True .RestoreDirectory = True End With Me.Hide() Ret = OpenFileDialog1.ShowDialog() If Ret = Windows.Forms.DialogResult.OK Then End If Shell = CreateObject("Shell.Application") Shell.shellexecute(OpenFileDialog1.FileName, , Application.StartupPath, "open", 1) MsgBox("Excelファイルは開きましたか", 0, "確認") Me.Show() End Sub 'rbtOLDボタンでの変更記述 ※既設ファイルへの認識が、新規オープンファイルと異なる為だと思い ますが、 解決方法を、教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Hardking
- ベストアンサー率45% (73/160)
既存ファイルを操作するには、エクセルのオブジェクト インスタンスをGetObjectで取得する。 Dim xlApp As Object = CreateObject("Excel.Application") Dim excelObj As Object = GetObject("ファイルパス") Dim xlSheet As Object = excelObj.worksheets("シート名") excelObj.Application.Visible = True xlSheet.Cells(3, 1).Activate()