- ベストアンサー
VBAからEXCELの新規ファイルを作成する
VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に 格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Open は、既に存在する book を開くときに使うメソッドです。 新規に book を作成する場合には、Add を使います。 たしか、こんな感じ。 objBook = objExcel.Workbooks.Add … objBook.SaveAs Filename := ~
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ちょっと横から口出しますが。 やりたいことって、元ファイルがあってそれを変更したものを、別のブックとして保存するということでしょうか。 それなら、No.1の補足のコードの後にWorkbookオブジェクトのSaveAsメソッドを使えばいいです。 SaveAsメソッドにFileNameの引数をつけるのは、いわゆる"別名で保存"という操作になります。 もし、指定名のブックを作成してセル編集なら、Addメソッドを使わないといけませんが。
お礼
おはようございます。 お礼が遅くなって本当に申し訳ありません。 新規のブックに作成する方法を当初考えておりNo2のやり方を採用したの ですが、もともとあるフォーマットに必要部分だけ設定する方法の方が 楽でしたので、教えていただいた方法も参考にさせていただきました。 ありがとうございました。
- a-kuma
- ベストアンサー率50% (1122/2211)
> ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい シート名は、もうついてます(「ここまではできています」の範囲)ので、後は workbook の SaveAs メソッドを使って保存します。 例えば、 ActiveWorkbook.SaveAs Filename:="c:\aaaa.xls" という感じ。
補足
早速の回答感謝します。 参照する時に以下のようにコーディングしていました。 これをちょっとかえれば、ファイルの新規作成もできるかな?と思って いたのですが、???部分の指定の方法もわかりません。 Dim objExcel As Excel.Application 'エクセル Dim objBook As Excel.Workbook 'ブック Dim objSheet As Excel.Worksheet 'シート Set objExcel = CreateObject("Excel.Application") Set objBook = objExcel.Workbooks.Open([ファイル名], , ???) Set objSheet = objBook.Worksheets([シート名]) objSheet.Cells(1, 1).Value = "A" objSheet.Cells(1, 2).Value = "B" ・・・ SaveAsを使用した場合、この後にコーディングすればよいのでしょうか? また、根本的に間違っている場合は、よい方法を教えていただけると 嬉しいです。 よろしくお願いします。
お礼
回答ありがとうございます。 全然違う方向に行っていました。 教えていただいた方法で試してみます。ありがとうございました。