【最大10000ポイント】当たる!!質問投稿キャンペーン!

AccessVBAでExcelファイルを作成しました。
これは一時的なもので、不要なので、処理の中で削除したいのですが、DeleteFile関数では無理なのでしょうか?
DeleteFile関数の使い方を間違えているのか、上手くいきません・・・。

どなたかよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Kill ステートメントで指定したパスのファイルを削除できます。



(例) Kill "c:\tmp\test.xls"

【注意!】
『Kill "c:\"』という風にファイル名を指定しないとフォルダ内の全ての
ファイルを削除してしまいますので注意して下さい。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
この方法が、一番簡単に目的を果たせましたので、参考にさせていただきました。

ありがとうございました。m(_ _)m

お礼日時:2006/07/11 09:40

作成したExcelファイルへの参照が残っているような状態なのかもしれません。

    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2006/07/11 09:32

次のような DeleteFile関数を利用するのもありです。



Public Function DeleteFile(ByVal FileName As String) As Boolean
  Dim isOK As Boolean
  Dim fso  As FileSystemObject
  
  Set fso = New FileSystemObject
  If fso.FileExists(FileName) Then
    fso.DeleteFile FileName
    isOK = True
  End If
  DeleteFile = isOK
End Function
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
今回はNo.1さんの回答が簡単でしたので
そちらを参考にさせていただきました。

空き時間に、この方法でも試してみたいと思います。

ありがとうございました。m(_ _)m

お礼日時:2006/07/11 09:36

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QAccessからExcelにエクスポートする時に常に上書きしたい

AccessのテーブルをExcelへ出力する際に、常に同じファイル名で保存する場合、
2回目以降は、上書きするかどうかを尋ねるメッセージが表示されます。
「常に上書きする」と決まっているので、メッセージを表示させたくないのですが、どうしたらいいのでしょうか。

現在、マクロで作成しており、出力の前後に「メッセージの設定」を入れてみたのですが、ダメでした。
VBAなら可能でしょうか?よろしくお願いします。

Aベストアンサー

こんにちは。maruru01です。

エクスポートする直前に、元のファイルを削除するか、移動するか、リネームするのはどうですか。(VBAですが)


削除
Kill "C:\エクスポート.xls"

移動
Name "C:\エクスポート.xls" As "C:\移動後\エクスポート.xls"

リネーム
Name "C:\エクスポート.xls" As "C:\エクスポート_1.xls"

QACCESS VBAからのファイル削除

毎月作成される複数ファイルを該当月フォルダ配下に複数フォルダを作成しコピーして整理しています。
ACCESS VBAで自動で作成しようと思いますが、処理開始前に該当フォルダが存在すれば全て削除して、当初状態にしたいのですが、該当月フォルダ(最上位のフォルダ)を指定して一括削除する方法は無いでしょうか?

Aベストアンサー

Folder 操作
http://www.geocities.jp/cbc_vbnet/Scripting/folder.html

ご参考になれば。

QAccess-VBAでExcelファイルを作成する。

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

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

Aベストアンサー

プロジェクト→参照設定で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

こんな感じでしょうか。

プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryにチェックを入
れて下さい。

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

Private Sub Command1_Click()

  On Error Resume Next

  Dim xlApp  As Excel.Application
  Dim xlBook As Excel.Workbook
...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QACCESS側からEXCELの書式を設定するには?

ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等)

データ件数が多すぎて、下記VBでエクスポート処理をしています。

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

お手数ですが、ご教授願います。

Aベストアンサー

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

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

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
xlApp.Cells.EntireColumn.AutoFit
xlApp.Range("A1").Select
xlApp.Visible = False

xlApp.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

Exit_Cmd1_Click:
Exit Sub

Err_Cmd1_Click:
MsgBox Err.Description
Resume Exit_Cmd1_Click

End Sub

こんな感じで記述してください。

#1の中でxlApp.DisplayAlerts = False これは除いてください。保存しますかのメッセージが出ます。

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

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

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
...続きを読む

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessからExcelのシートを削除

現在AccessのテーブルをExcelへエクスポートする処理を書いています。
内容は以下のとおりです。
・エクスポート先のExcelファイルは新規のものではなく既存のファイルを使用
・エクスポートする際、以前エクスポートした分のシートを削除してから転送させたい

下記のようなコードを書きましたが実行してみると前回エクスポートした分のシートは削除されておらず
今回エクスポートしたものが追加されているという状況です。
●エクスポート先Excelファイル名:エクセルファイル.xls
●エクスポートするテーブル名(Excelではシート名):転送テーブル

Set xlsApp = CreateObject("Excel.Application")
Set wkBook = xlsApp.Workbooks.Open("C\エクセルファイル.xls")

wkb.Application.DisplayAlerts = False
wkBook.Worksheets("転送テーブル").Activate
wkBook.Worksheets("転送テーブル").Delete
wkBook.Save
wkBook.Close
wkb.Application.DisplayAlerts = True

Set xlsApp = Nothing
Set wkBook = Nothing

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "エクセルファイル.xls", FullPath

どうぞよろしくお願い致しますm<_ _>m

現在AccessのテーブルをExcelへエクスポートする処理を書いています。
内容は以下のとおりです。
・エクスポート先のExcelファイルは新規のものではなく既存のファイルを使用
・エクスポートする際、以前エクスポートした分のシートを削除してから転送させたい

下記のようなコードを書きましたが実行してみると前回エクスポートした分のシートは削除されておらず
今回エクスポートしたものが追加されているという状況です。
●エクスポート先Excelファイル名:エクセルファイル.xls
●エクスポートするテー...続きを読む

Aベストアンサー

ところどころ変なところがありましたが、大きな変更無く、下記コードをAccessの標準モジュールに置いて実行すると、目的シートの削除ができました。DoCmdの方は試してありませんが、ご参考まで。当方Access2000です。
Sub test()
Dim xlsApp As Object, wkBook As Object
Set xlsApp = CreateObject("Excel.Application")
Set wkBook = xlsApp.Workbooks.Open("C:\エクセルファイル.xls")

xlsApp.DisplayAlerts = False
wkBook.Worksheets("転送テーブル").Activate
wkBook.Worksheets("転送テーブル").Delete
wkBook.Save
wkBook.Close
xlsApp.DisplayAlerts = True

Set wkBook = Nothing
Set xlsApp = Nothing
End Sub

ところどころ変なところがありましたが、大きな変更無く、下記コードをAccessの標準モジュールに置いて実行すると、目的シートの削除ができました。DoCmdの方は試してありませんが、ご参考まで。当方Access2000です。
Sub test()
Dim xlsApp As Object, wkBook As Object
Set xlsApp = CreateObject("Excel.Application")
Set wkBook = xlsApp.Workbooks.Open("C:\エクセルファイル.xls")

xlsApp.DisplayAlerts = False
wkBook.Worksheets("転送テーブル").Activate
wkBook....続きを読む

Qアクセスvbaでエクセルブックを保存

アクセス初心者です。よろしくお願いします。
アクセスのフォームに表示したデータをエクセルのシートにコピーして名前を付けて保存させたいです。
テーブル等のエクスポートではありませんのでDoCmdでの保存ではなくSaveAsで保存したいです。
いろいろなサイトを見て新規ブックを開いて保存することはできましたが、既存ブックを開いて別名で保存しようとするとオブジェクト云々、オートメーション云々のエラーになります。
検索したサイトからの引用ですが、
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets(1)
  xlSheet.SaveAs "c:\Temp.xls"
はできるのですが、
  Set xlBook = xlApp.Workbooks.Open("C:\temp\原紙.xls")
  Set xlSheet = xlBook.WorkSheets(1)
  fname = "C:\temp\" & Format(Date, "yyyymmdd") & "売上一覧.xls"
  xlBook.SaveAs Filename:=fname
だとエラーになります。
既に書式等を設定したブックを使いたいので後者のように既存のブックを使いたいのですが、どうしたらよろしいでしょうか。
職場に端末を持ち込めないため対応が遅くなりますがよろしくお願いします。

アクセス初心者です。よろしくお願いします。
アクセスのフォームに表示したデータをエクセルのシートにコピーして名前を付けて保存させたいです。
テーブル等のエクスポートではありませんのでDoCmdでの保存ではなくSaveAsで保存したいです。
いろいろなサイトを見て新規ブックを開いて保存することはできましたが、既存ブックを開いて別名で保存しようとするとオブジェクト云々、オートメーション云々のエラーになります。
検索したサイトからの引用ですが、
  Set xlBook = xlApp.Workbooks.Add
  Se...続きを読む

Aベストアンサー

昔の記憶を頼りに・・・。
1:新規ブックを開く。
2:ワークシートを全て削除
3:既存のブックを開く。
4:既存のブックのシートを新規ブックにコピー
5:新規ブックを保存
※その他の処理は省略。

おおざっぱですが、こんな感じで出来たように記憶しています。
参考までに・・・。

' 新規Sheetを開き、ワークシートを空にする。
Set nlBook = nlApp.Workbooks.Add
Dim i As Integer
For i = nlBook.Worksheets.Count To 1 Step -1
nlBook.Worksheets(i).Delete
Next i

' 元になるSheetを開く
Set olBook = olApp.Workbooks.Open("C:\temp\原紙.xls")
Set olSheet = olBook.WorkSheets(1)

' 元になるシートを新規にコピーする
olSheet.Copy After:=nlBook.Worksheets("Sheet1")

' 新規Sheetを保存する
fname = "C:\temp\" & Format(Date, "yyyymmdd") & "売上一覧.xls"
nlBook.SaveAs Filename:=fname

昔の記憶を頼りに・・・。
1:新規ブックを開く。
2:ワークシートを全て削除
3:既存のブックを開く。
4:既存のブックのシートを新規ブックにコピー
5:新規ブックを保存
※その他の処理は省略。

おおざっぱですが、こんな感じで出来たように記憶しています。
参考までに・・・。

' 新規Sheetを開き、ワークシートを空にする。
Set nlBook = nlApp.Workbooks.Add
Dim i As Integer
For i = nlBook.Worksheets.Count To 1 Step -1
nlBook.Worksheets(i).Delete
Next i

' 元になるSheetを開く
Set olBoo...続きを読む

QAccessからExcelのファイルを起動する

Accessのフォーム上にボタンを作成して
クリックすると特定のExcelのファイルが起動する
ようにしたいのですが、簡単な手はありませんか?

Aベストアンサー

こんにちは。maruru01です。

Shell関数を使って、

Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE ファイル名"

とします。
ちなみに、Excelの実行ファイルのパスは環境によって違ってきます。

あと、Excelの実行ファイルのパスがわからなくても、ファイルに関連付けられたアプリケーションで開くには、API関数のShellExecute関数を使用します。
API関数については、WEB上で検索して下さい。
このサイトの過去の質問でもヒットするかも知れません。


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

人気Q&Aランキング