Accessで空のExcelファイルを出力する方法

このQ&Aのポイント
  • Accessで空のExcelファイルを出力する方法について
  • Accessで空のExcelファイルを出力する方法が分からない場合、エラーメッセージが表示されることがあります。毎回空のExcelファイルを出力し、セルに値を書き込むことでこの問題を回避することができます。
  • アドバイスを求める。
回答を見る
  • ベストアンサー

Accessで空のExcelファイルを出力する方法について

下記を実行した所、C:\excel.xlsのセルA1に「1」と記述されました。 【ソース】 Private Sub コマンド0_Click() Dim objExcel As Object Set objExcel = CreateObject("Excel.Application") objExcel.Workbooks.Open FILENAME:="C:\excel.xls" objExcel.Range("A1") = 1 objExcel.Application.ActiveWorkbook.Save objExcel.Application.Quit End Sub しかし、C:\excel.xlsが存在しない状態で実行すると下記のエラーメッセージが表示されました。 【エラーメッセージ】 実行時エラー '1004' 'C:\excel.xls'が見つかりません。ファイル名およびファイルの保存場所が正しいかどうか確認してください。 上記現象を回避する為には、毎回空のExcelファイルを出力した上でセルに値を書き込めば良いと思いましたが、空のExcelファイルを出力する方法が分かりませんでした。 その為、何かアドバイスをいただける方がいらっしゃいましたら、どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

これでいかがでしょうか。標準モジュールに置いて試験しました。(Office2000) Sub excelTest() Dim objExcel As Object Dim wbk As Object Set objExcel = CreateObject("Excel.Application") Set wbk = objExcel.Workbooks.Add wbk.sheets(1).range("A1").Value = 1 wbk.SaveAs Filename:="C:\excel.xls" wbk.Close objExcel.Application.Quit End Sub

iroha_168
質問者

お礼

ご教示いただいたソースを試させて頂いた所、意図した動作となりました。 どうもありがとうございました。

関連するQ&A

  • ACCESS Excelの出力について

    stressmanといいます。 実は、ACCESSでクエリをExcelへ出力をしたいのですが、 ここで、既存のExcelのファイルのセルを指定して出力 というこはできるのでしょうか? 選択クエリで必要な情報を抜き出し、そのクエリを 「営業報告書.xls」というファイルのあらかじめ記載して ある「顧客名」「住所」のセルに格納していきたいのです。 マクロで「コマンド実行」-「Excel出力」を使って みたのですが、新しくファイルを開き、クエリのデザイン そのままで出力されます。 宜しくお願いします。

  • エクセルファイルを閉じる方法

    VBでExelファイルを新規作成し、名前をつけて保存するんですが、 objxls.Application.Visible = False として非表示で実行すると、保存した後でも「Bookxx」というExcelファイルが開かれっぱなしになっています。 「Bookxx」が作られない(ちゃんと閉じる)ようにするにはどうすればいいでしょうか。 Excelファイルの閉じ方は objExcel.ActiveWorkbook.Close SaveChanges:=True, FileName:=App.Path & "\bookPaste.xls" でやっています。

  • ACCESSのVBから、エクセルファイルのセルを更新して、エラーがでます

    エクセルファイルによってはいろいろな設定をしています 例えば、書き込み禁止、など これらの類の理由で、エラーがでます 今回↓のエラー ------------------------------------------------------------ このブックには、ほかのデータソースのリンクが含まれています。 ーすべてのリンク情報を更新するには「はい」をクリックしてください ー既存の情報を保持するには、「いいえ」をクリックしてください ------------------------------------------------------------- がでます そこで質問ですが これらのメッセージを無視して 強制的に、セルの内容を書き込めないでしょうか なお、セルを更新するVBは下記のようです Xls3.Application.Goto "r" & myRow & "c" & myCollumn Xls3.Application.activecell.Value = myTxt 繰り返すと エラーメッセージを無視して 更新したいのですが よろしくお願いします

  • ACCESSからEXCELに出力する際、時間がかかる。

    よろしくお願いします。 ACCESS VBA を使用して、既存のEXCELファイルにデータを出力しているのですが、すごく時間がかかってしまいます。件数が少ない時はそれほど気にならないのですが。時間短縮する方法を教えてください。 Sub S_ExportExcel_ADO() Dim CN As ADODB.Connection Dim rst As ADODB.Recordset Dim objExcel As Excel.Application Dim i As Integer Dim W_SQL As String On Error GoTo Err_S_ExportExcel_ADO Set objExcel = New Excel.Application objExcel.Workbooks.Open ("test.xls") objExcel.Worksheets("sheet1").Select Set CN = CurrentProject.Connection Set rst = New ADODB.Recordset W_SQL = "SELECT * FROM データ" rst.Open W_SQL, CN, adOpenKeyset, adLockReadOnly i = 1 Do Until rst.EOF objExcel.Cells(i, 4) = Trim("" & rst![データ1]) objExcel.Cells(i, 5) = Trim("" & rst![データ2]) objExcel.Cells(i, 6) = Trim("" & rst![データ3]) objExcel.Cells(i, 7) = Trim("" & rst![データ4]) objExcel.Cells(i, 9) = Trim("" & rst![データ5]) '***省略*** objExcel.Cells(i, 35) = Trim("" & rst![データ15]) objExcel.Cells(i, 36) = Trim("" & rst![データ16]) i = i + 1 rst.MoveNext Loop 'EXCEL保存 objExcel.ActiveWorkbook.Close objExcel.Quit rst.Close CN.Close Set rst = Nothing Set CN = Nothing Set objExcel = Nothing End Sub

  • ACCESS 2000でのExcel出力

    ACCESS 2000でExcel出力時に下記のソースで出力しています。 出力先をユーザーに選択させたい(Windowsでファイル保存時に出てくるやつみたいに)のですが、どのような方法がありますか? Private Sub 集計結果_Click() DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _ "クエリA", "c:\集計.xls" End Sub 宜しくお願いします。

  • VBでExcelファイルに書き込んで、、

    下記は本であった例題です↓。 'エクスポート先セルをRow(行)とColumn(列)の形式で指定する Xls.Application.Goto "r2c3" 'セルに値をエクスポートする Xls.Application.activecell.Value = "★彡☆彡" Xls.Application.Quit 'Excelを閉じる Set Xls = Nothing Debug.Print "Completed!!" End Function 質問ですが、 このVBを実行した後に、 「更新した内容を保存しますか」 と聞いてきます そこで、VBの中で、保存するようにするには? つまり、「保存しますすか」のメッセージを出さない ようにしたいのです よろしくお願いします

  • VistaのIISで動作するASPのExcel処理

    お世話になります。 Windows Vista Business 上のIISで、Excelファイルを読み込む処理を書いたのですが、Excelファイルを読み込む処理でエラーになってしまいます。 下記がソースです。 <% On Error Resume Next fileName = "C:\test.xls" Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False 'ここでエラーが発生する Set objWorkbook = objExcel.Workbooks.Open (fileName) 'この処理で発生したエラーの内容を出力する Response.Write Err.Description & "<br />" Err.Clear objExcel.Quit %> これをWebサーバに保存し、実行すると、ブラウザ上で下記が出力されます(「Response.Write Err.Description & "<br />"」で出力される内容です)。 ------------------------------------------------------------ ファイル 'C:\test.xls' にアクセスできません。次のいずれかの理由が考えられます。 ? ファイル名またはパスが存在しません。 ? ファイルが他のプログラムによって使用されています。 ? 保存しようとしているブックと同じ名前のブックが現在開かれています。 ------------------------------------------------------------ もちろん、ファイルは存在しますし、Excelが起動していない状態でもエラーとなってしまいます。 Windows XPのIISでは、Excelの読み込みができていました。 ここで質問する前にいろいろ調べたのですが、Webサーバ上でExcelを起動すること(WordやExcelをcomオートメーションで起動すること)が、非推奨だったようですね。 そこで、知りたいことは下記の通りです。 1.VistaのIIS上でExcelを起動する術は、もはやないのか(ExcelをWebサーバ上で動作させる非推奨なプログラムを動かせなくした、など)。 2.読み込ませるExcelのファイルに適切な権限を与えればよいのか。 3.IIS7で作成したWebサイトの設定(アプリケーションプールや物理パス資格情報など)を適切な値にすればよいのか。 以上、よろしくお願い致します。

  • VisualBaic2005でExcelファイルを読む方法2

    temtecomai2さんにアドバイスを頂き、下記のようにプログラムを修正して実行してみたのですが、下記のエラーになりました。 Dim xlApplication As New Excel.Application() Dim xlBooks As Excel.Workbooks xlBooks = xlApplication.Workbooks xlBooks.Open("C:\book1.xls") ↑を実行した時点で「保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。」のエラーメッセージがでます。 新しいExcelブックの追加(xlBooks.Add())を実行してもエラーはでないです。大変申し訳ないのですが、エラーの回避方法を教えてください。よろしくお願いいたします。

  • EXCELのVBAでの保存方法

    EXCELで以下のように記述したところ、 「ファイルを置き換えますか」のメッセージの後に 「いいえ」か「キャンセル」を選択すると 「400」というエラーメッセージが表示されます。 「いいえ」か「キャンセル」を選択した場合は、 エラーメッセージを表示させずに、 特定のシートのセルA1にカーソルを移動させたいのですが、可能でしょうか? ご指導よろしくお願いします。 ________________________ FileA = Application.GetSaveAsFilename( _ InitialFilename:="C:\test.xls", _ fileFilter:="XLSファイル (*.xls), *.xls") ActiveWorkbook.SaveAs Filename:=FileA ________________________

  • excelのデータをvbにとりこむ

    excelのあるセルのデータを取り込みたいのですが、 どうすればよいでしょうか? C:\123.xlsというファイルのsheet1の (2,4)というセルにある実数型のデータを 出力するという、意図です。 Private Sub Setting_Click() Dim xls As Object Dim xlsFilename As String Dim xlsSheetname As String xlsFilename = "C:\123.xls" xlsSheetname = "Sheet1" Set xls = CreateObject("Excel.Application") xls.Application.Visible = False xls.Application.Workbooks.Open xlsFilename Dim r1 As Double r1 = xls.Application.Workbooks.cells(2, 4).Value Print r1 end sub

専門家に質問してみよう