Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8147 / 13644 ツリー ←次へ | 前へ→

【34950】特定のシートのCSV出力について daidai 06/2/16(木) 17:12 質問[未読]
【34952】Re:特定のシートのCSV出力について Kein 06/2/16(木) 17:41 回答[未読]

【34950】特定のシートのCSV出力について
質問  daidai  - 06/2/16(木) 17:12 -

引用なし
パスワード
   CSV形式の出力には成功したのですが、
同じファイル名があるときにキャンセルすると
マクロがエラーになるので、キャンセルしたとき
の処理を行いたいのです。

VBAは初心者ですので分からない説明かと思いますが
どなたかご指導のほどよろしくお願いいたします。

「マクロの記録」で作った現在のマクロです。

Range("M9").Select
  Range(Selection, Selection.End(xlToRight)).Select
  Range(Selection, Selection.End(xlDown)).Select
  Selection.Copy
  Sheet2.Visible = True
  
  Sheets("変換シート").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=True, Transpose:=False
  Range("A1").Select
  Sheets("変換シート").Select
  Application.CutCopyMode = False
  Sheets("変換シート").Copy
  
  ActiveWorkbook.SaveAs Filename:= _
    "C:\Documents and Settings\daidai\デスクトップ _
    \データ.csv", FileFormat:=xlCSV, _
    CreateBackup:=False
  ActiveWorkbook.Save
  ActiveWindow.Close
  Range("A1").Select
  Range(Selection, Selection.End(xlToRight)).Select
  Range(Selection, Selection.End(xlDown)).Select
  Selection.ClearContents
  Range("A1").Select
  Sheets("入力").Select
  Selection.End(xlToLeft).Select
  Sheet2.Visible = False

【34952】Re:特定のシートのCSV出力について
回答  Kein  - 06/2/16(木) 17:41 -

引用なし
パスワード
   まず、フルパスのように長い文字列は、定数で宣言しておきます。

Const MyF As String = _
"C:\Documents and Settings\daidai\デスクトップ\データ.csv"

で、ファイルが既に存在しているかどうかをチェックするには、Dir関数を使います。

If Dir(MyF) <> "" Then

とすれば、「Trueなら既に存在している」ということになるので

Kill MyF

として事前(Sheets("変換シート").Copy の前あたり)に削除しておきます。
その上で

Sheets("変換シート").Copy
With ActiveWorkbook
  .SaveAs MyF, xlCSV
  .Close False
End With

などとすれば良いでしょう。
これでいちいちメッセージが出なくなりますから、煩わしくなくなるはずです。

8147 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free