- ベストアンサー
VBからEXCELを保存
VBからEXCELに保存したいのですが、前準備としてEXCELのsheet2で保存します。VBを実行したときにExcelのsheet1に保存したいのですが、どうすればいいかわかりません、おしえてください。多分、保存するときにSheet2を対象にしていると思うので、sheet1を対象にしたいのですが・・・ /****************** VBを実行したときの処理 ********************/ 'アプリケーションの参照 Set xlApp = CreateObject("Excel.Application") 'ブックの参照 Set xlBook = xlApp.Workbooks.Open("C:\テスト\テスト.Xls") 'シートの参照 Set xlSheet = xlBook.Worksheets("Sheet1")
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問の意味がいまいちわからないのですが、 sheet1をアクティブにして保存するということでよいのですか? こんな感じ↓ 'Excelシートの1番目をアクティブに設定 xlApp.Worksheets(1).Activate '変更を保存して対象Bookのみを閉じる xlApp.Application.ActiveWindow.Close SaveChanges:=True
その他の回答 (1)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 いまいち状況がわからないので、質問します。 1.何を保存したいのでしょうか。 VBのフォーム上のテキストボックスなどにユーザーが入力した値でしょうか。 それとも、別のExcelファイルの内容でしょうか。 2.どこに保存したいのでしょうか。 テスト.xlsファイルの「Sheet1」ですか。 3.「Sheet2」はどういう関係があるのでしょうか。 Sheet2のデータをSheet1に保存したいのですか。 Sheet2にも同じデータを保存したいのでしょうか。 ちなみに、Excelには「シートを保存する」という概念はありません。 あくまで、そのシートがある「ブックを保存する」ということです。 ブックを保存する場合は、私が以前(No.414739)で回答した通り、 'シートの参照破棄 Set xlSheet = Nothing 'ブックを保存して閉じて、参照破棄 xlBook.Close True Set xlBook = Nothing ’アプリケーションを終了して、参照破棄 xlApp.Quit Set xlApp = Nothing で、保存して終了出来ますが。
補足
1.何を保存したいのでしょうか。 VBのフォーム上のテキストボックスなどにユーザーが入力した値でしょうか。 はい、ユーザーが入力した値です。 2.どこに保存したいのでしょうか。 テスト.xlsファイルの「Sheet1」ですか。 はい、そうです。 3.「Sheet2」はどういう関係があるのでしょうか。 VBと関係なく、テスト.xlsを開いて、sheet2で 保存します。VBを実行して、ユーザーが入力した値をsheet1に保存するときに、sheet2がアクティブになっているとおもわれるのですが、ですからEXCELを開くときにsheet1をアクティブにしたいのですが。