VBマクロで上書きしない時はマクロを終了させたいのですが、コードを教えてください

このQ&Aのポイント
  • VBマクロを使用してエクセルファイルを保存していますが、上書きしない時はマクロを終了させる方法を教えてください。
  • また、上書きせずに別の名前で保存する方法も教えてください。
  • VBマクロを終了するためには、Application.Quitを使用します。
回答を見る
  • ベストアンサー

VBマクロで教えて下さい。

下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3  ユーザー名 : HA社    ChDir "C:\Documents and Settings\6464552\デスクトップ"    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False  Range("D42:E49").Select    Selection.ClearContents    Range("I32:J32").Select    Selection.Copy    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Application.CutCopyMode = False    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False    Application.Quit End Sub

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

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

下記でどうでしょう ただこの場合、"いいえ"も"キャンセル"も同じ動作をします。 --- Sub Macro2() ChDir "C:\Documents and Settings\6464552\デスクトップ"  On Error GoTo Exit_Sub ActiveWorkbook.SaveAs Filename:= _ "D:\work\直送先部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Range("D42:E49").Select Selection.ClearContents Range("I32:J32").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False On Error GoTo Exit_Sub ActiveWorkbook.SaveAs Filename:= _ "D:\work\PPSC部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Application.Quit Exit_Sub: Exit Sub End Sub --- きちんと書きたいなら下記参照

参考URL:
http://vbaexcel.seesaa.net/article/148416890.html

関連する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  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

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

    エクセルでマクロを使いボタンを 作りました。ボタンを押すと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からエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

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

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

  • マクロ 保存の仕方

    ' 指定の場所に保存する 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)等を付けて保存したいのですが。

  • ファイル保存のマクロについて

    ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\aaa\bbb\ccc\" & Range("k2").Value & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False 上記のようにマクロを組みましたがうまく作動しません。 セル"k2"の値は日付が入力されています。 その値が原因で読み取れないみたなのですが。 (セルの書式設定の日付で●月●日で設定しています)

  • Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル

    Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル形式で表示するVBAで組まれたエクセルがあります。 Bに読み込まれたエクセルだけを、デスクトップに保存したいのです。 ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False 以前は動いていたのですが、しばらくぶりに動かしたら動かなくなってしまいました。 以前はOFFICE2000か2003で今は2007になっています。 大変困っています。どなたかお助けください。

  • 実行時エラー1004

    下記マクロを実行するとA1に入力した文字に名前をつけて保存するような マクロをつくりましたが A1に 「保存横一列」なら保存できますが 「保存(alt+エンター) セルに2行」 というように(alt+エンター)を入れて複数行にすると 「実行時エラー1004」が出てしまいます。 「保存セルに2行」というように1列にして保存したいのですが どのようにしたらいいのでしょうか? よろしくお願いします。 Sub Macro1() Dim name As String name = Range("A1").Value ChDir "C:\Documents and Settings\E-MACHINE\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\E-MACHINE\デスクトップ\" & name & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub

  • ExcelVBAでファイルの名前をつけて保存

    こんばんは! Workbooks.Add ChDir "C:\Documents and Settings\test\My Documents\住所録" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\test\My Documents\住所録\友達.xls", FileFormat _ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False ActiveWindow.Close として現在開いているファイルから、新規ファイルを作成してデータを写しこみたいと考えているのですが、この書き方だと自分のパソコンでしか出来ないので困っています。 ThisWorkbook.Pathを使うんだろうと思うのですが、どの様に使えばよいのか判らず困っています。 現在開いているファイルと同じフォルダの中に住所録というフォルダを更に作成し、その住所録フォルダの中に新しいファイルを作りたいのですが。。 ご伝授願います。

  • エクセルマクロ フィルタで検索した結果で新しいブックを作成する

    いつもこちらでお世話になっているマクロ勉強中のものです。 オートフィルタを使ってD9の条件にあるものすべてを順番に新しいブックにコピーしていきたいと思っています。 Loopで処理するのだと思いますが、順番にすべて検索する 繰り返しの処理の仕方が分かりません。 不躾で申し訳ありませんが、提出期限が近いため、 どなたかご指南いただけたらと思います。どうぞよろしくお願いします。 Sub Macro1() ActiveSheet.Range("$A$9:$T$79").AutoFilter Field:=4, Criteria1:="○○" Range("D1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Copy Workbooks.Add ActiveSheet.Paste Folder = "C:\Documents and Settings\All Users\デスクトップ\" folder_name = "デスクトップ" ChDir Folder fname = "(D1).xls" ActiveWorkbook.SaveAs Filename:= _ Folder & fname, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub

  • Excelマクロで年度別にフォルダ作成したい。

     Excel2003です。  日々の売り上げ集計ファイルをボタン一つで保存していくマクロを作っています。 Application.DisplayAlerts = False If Dir(ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計", vbDirectory) = "" Then MkDir Path:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計" ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Else ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False  とりあえず指定のフォルダに「yymmdd.xls」という名前をつけて保存、もしフォルダがなければ作るというところまで作れました。そこで、今度は「**年度」というフォルダに自動的に保存され、もし「**年度」というフォルダがなければ作るようにしたいのです。上に上げたマクロでは「**年」というフォルダを作ってその中に保存というところまでは出来ているのですが……。とにかく年度で分ける場合の処理がよくわかりません。  回答よろしくお願いします。

専門家に質問してみよう