• ベストアンサー

VBA でフロッピーに保存が時間かかりすぎる

excel2000を使用し VBAで フロッピーディスクへの保存 ChDir "A:\" ActiveWorkbook.SaveAs Filename:="A:\請求台帳.xls",FileFormat:=xlNormal のマクロを実行したところ物凄い時間がかかります。 普通に送るから実行するとものの20秒もかかりません。 どうしてかよくわかりません。 フロッピへ送るフアイルは980MB程度です。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 コードの中で、ChDir "A:\" は無意味ですね。 それと、ExcelのApplicationから、FDDの保存ですと、かなり小分けになって、セクタに分けて保存されてしまいますから、まとめてFDDに保存させるようにしなければなりません。 以下のようなコードを考えてみました。たぶん、1/3ぐらいに時間が短縮されるはずです。 Sub SavingTimeSave()   Dim myFileName As String   myFileName = ActiveWorkbook.Name   Application.DisplayAlerts = False   ActiveWorkbook.SaveCopyAs "$" & myFileName   Application.DisplayAlerts = True   FileCopy "$" & myFileName, "A:\" & myFileName   Kill "$" & myFileName End Sub

aitaine
質問者

お礼

ご回答ありがとうございます。試したら50秒かかりました。これなら何とか使えそうです。ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Formatをやり直したFDで(他のファイルがない状態にして)やっても同じような時間がかかりますか。断片化してないかと思って。

aitaine
質問者

補足

Formatをやり直したFDで実験したいと思います。回答ありがとございました。

回答No.1

> のマクロを実行したところ物凄い時間がかかります。 何秒くらいかかりますか?5分とか? VBAからSaveAsの処理は若干時間がかかります。 「送る」を行った場合、既にファイルが存在している事に対し、 VBAではファイルを作成する事も含まれます。 > フロッピへ送るフアイルは980MB程度です。 980KBの間違いですよね? 多分フロッピーは1.44MBのものを利用されているのでしょう。

aitaine
質問者

補足

すいません。980KBの間違いです。 フロッピーは1.44MBです。 おそらく2分以上かかったとおもいます。 とにかく肩がこるじかんでした。

関連するQ&A

  • ファイルの保存先を任意にしたい(マクロ)

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • マクロExcel2003日付を付けてファイルを保存

    Excel2003でマクロを利用して、日付を付けた形でファイルを保存するようにしたいです。 条件としては、 (1)ファイルをz:\に「【ここに日付を八桁で保存】File1.xls」とする 例えば、20111127File1.xls (2)上書きする場合も、確認をせずに強制的に保存 (3)保存が終わったら、強制的にExcel2003を終了する という具合に書きたいです。 マクロの保存でやってみてわかっている所まで書きました。 Sub SaveEnd() ActiveWorkbook.SaveAs Filename:="Z:\【????】file1.xls", FileFormat:=xlNormal   【上書き保存で、確認をしない】   【Excel2003の強制終了】 End Sub どのように調べれば良いかも含めて、ご指導をいただければ幸いです。

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • Excel/VBAのファイル保存

    いつもここでは大変お世話になっています。 以下のように名前をつけて保存をしているのですが、 同名のファイルがあった場合でも上書き確認せずに上書きをさせる方法を教えて下さい。 お願いします。 ActiveWorkbook.SaveAs Filename:= _ "\\PC名\ディレクトリ名\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False

  • ファイルの保存先のパス

    マクロでデスクトップに保存させたいのですが、 ActiveWorkbook.SaveAs Filename:= _ "D:\Documents and Settings\●●●\デスクトップ\Book1.xls", FileFormat:=xlNormal _ , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False の●●●のように、私のユーザー名が入ります。 このファイルは色々な人に使ってもらいたいので、 LOCALみたいな意味合いの言葉を入れたいのですが、 なんと入れたら良いでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします。

  • SaveAsの保存先について

    エクセルのマクロのついての質問です よろしくお願いします 現在、下記のようなコードでマクロを実行するとパスワードをつけて上書き保存したような結果になっています(元のファイル名も○○.xlsで、指定したものと同一です) Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="○○.xls", FileFormat:=xlNormal, Password:="1111", WriteResPassword:="2222", ReadOnlyRecommended _ :=False, CreateBackup:=False Application.DisplayAlerts = True 私の目的としてはそれでよいのですが、このように格納先を指定しなかった場合は 必ず元のファイルと同一のフォルダになるってくれるものなのでしょうか? それとも状況によって別なところに名前をつけて保存されてしまったりすることがありますか?

  • マクロ 保存の仕方

    ' 指定の場所に保存する ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\デスクトップ\A\B\" & Replace(Range("k2").Value, "/", "") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close 上記のようにマクロを組みましたが、同じ名前で1回保存すると2回目からエラーします。 2回目から保存名の後ろに(2)、3回目は(3)等を付けて保存したいのですが。

  • VBAでのシートコピーについて

    VBAでシートを新しいブックにコピーして、名前を付けて保存したいのですが、同じファイル名が存在すると、必ず「上書きしますか?」のダイアログが表示されてしまいます。無条件で上書きする方法ってありませんか? 今は↓のようなコードを書いてます。 Application.ScreenUpdating = False Sheets("sheet1").Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False ActiveWindow.Close

  • Excel VBA で 保存

    VBAマクロで 終了ボタンを押した時に あるシートを削除をし TEST2 と言う名前で保存したいのですが 保存したシートを開こうとすると強制終了してしまいます。どなたか詳しい方ロジックを見ていただけませんか?よろしくお願いします。 ちなみに Excel2000 です。 以下ロジック Dim fs As Object Dim w As Object strWK_SaveBmnFile = "c:\TEST2.xls" '' ------------------------------ '' strWK_SaveBmnFile ファイルの存在チェック '' ------------------------------ Set fs = CreateObject("Scripting.FileSystemObject") If fs.FileExists(strWK_SaveBmnFile) Then Kill strWK_SaveBmnFile End If Set fs = Nothing Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=strWK_SaveBmnFile, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Windows("TEST2.xls").Activate Worksheets("DATA1").Select ActiveWindow.SelectedSheets.Delete Worksheets("DATA2").Select ActiveWindow.SelectedSheets.Delete ActiveWorkbook.Save Application.Quit

  • エクセル2007でエクセル2003形式で保存しようとしたときに、互換性

    エクセル2007でエクセル2003形式で保存しようとしたときに、互換性チェックのアラートを出さずに保存するには、どのようにマクロ記述すればよいですか。 ActiveWorkbook.SaveAs Filename:= "book1.xls", FileFormat:=xlExcel8 の前か後に何かを記述すれば良いと思うのですが、それがわかりません。 よろしくお願いいたします。

専門家に質問してみよう