アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわお世話になります。

「Excelにエクスポート」ボタンをクリックすると、Inputboxか何かが表示されて、Pathやファイル名やシート名を入力し、「実行」ボタンを押すと、新規にExcelのBookを、そのPath、ファイル名、シート名で作成する。その後、そのシートにデータを書き込むという作業をしたいのです。
AccessのデータをExcelの任意のシートを開いて書き込むという部分のVBAコードはわかりますので、新規Book作成部分のコードがわかるかたお願いします。
Office97を使用しています。

A 回答 (3件)

Workbooks.Add で新規に Book を作成します。



シート名については、新規に作成された Workbook は、所定の数のシートを持って作成されるので、
シート数がひとつになるまで ActiveSheet.Delete を繰り返し、ひとつになったら
シート名をお好みのに変える、という感じでしょうか。

SaveAs で保存すれば、パスとファイル名は指定できますね。

Dim excel As Object
excel = CreateObject("Excel.Application")

Workbooks.Add
Do While Sheets.Count <> 1
  ActiveSheet.Delete
Loop

ActiveSheet.Name = "sheet name"

' ここで、シートに対して処理を ごにょごにょ

excel.SaveAs "d:\test.xls"
excel.Application.Quit
excel = Nothing

# 全然、試してません
    • good
    • 0
この回答へのお礼

試してみました。いっぱいコレクションが無いとか変数が定義されていません。みたいなエラーが出まして、改めてdimで宣言したりしたんですが、結局うまくいきませんでした。もう少し自分にテクニックがあれば何とかできそうなもんなんですが・・・
ありがとうございました。

お礼日時:2002/12/16 18:07

エクセルのツール-マクロ-マクロの記録で


エクセルのファイル-新規作成の操作をすれば、
Workbooks.Add
ActiveCell.FormulaR1C1 = "aaa"
Range("A2").Select
ActiveWorkbook.SaveAs Filename:="C:\My Documents\ccc3.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
となります。
これをそっくりxlapp=CreateObject"Excel.Application")
の後にいれれば良いです。
ActiveCell.FormulaR1C1 = "aaa"は例でいれただけで、
実質シート内容を作成は
ActiveWorkbooks.Worksheets("Sheet1").Range("a1")=
とかで行う。
    • good
    • 1
この回答へのお礼

最初これを読んだとき良くわからなかったのですが、後のO_cyanさんの回答と見比べてやっと意味がわかりました。ありがとうございます。

お礼日時:2002/12/16 18:11

プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryにチェックを入


れて下さい。

オブジェクトへの参照を格納する変数を事前バインディング。
変数にオブジェクトの参照を代入します。Addメソッドを使って新規workbookと
worksheet オブジェクトを作成します。
値を代入し名前を付けて保存してオブジェクトを開放する。という流れで良いと
思います。

Private Sub Command1_Click()

  On Error Resume Next

  Dim xlApp  As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim xlSheet As Excel.Worksheet

  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets(1)

  ' Excel のセルに値を代入します。
  xlSheet.Cells(1, 1).Value = " "

  ' Worksheet を名前をつけて保存します。ダイアグボックス等を使用して
   パスやBook名など入力できるようにしてもOKです。
  xlSheet.SaveAs "c:\Temp.xls"

  xlApp.Quit

  Set xlSheet = Nothing
  Set xlBook = Nothing
  Set xlApp = Nothing
End Sub

こんな感じでしょうか。
    • good
    • 2
この回答へのお礼

ばっちり出来ました。ありがとうございました。

お礼日時:2002/12/16 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A