こんにちは。
VB初心者です。
実はVBではなく、Excel VBAで行なっているのですが。
ここに質問していいかもよく分かってないのですが。
プログラムの処理としては、あるBookのシートの内容を
別のCSVファイルとして生成したいのです。マクロを組んだのですが、一つ問題があって困っています。
問題:
生成したCSVファイルが一度Window上に表示されて
(それはいいのですが、あとで閉じますから)
以下の確認メッセージがでてしまいます。
「outFile.csvはExcel97のファイル形式では、ありません。変更を保存しますか?」
要はプログラムがここで、一旦ユーザアクションを要求してしまうのです。
アクションなしに普通に終了させたいのですが。
マクロではなくVBだったらこんなことはならないのでしょうか?
初心なのでよく分かりません。
もしくはもっとほかの簡単なコードできるのでしょうか。
以下にコードを記述します。
Sub OutFile()
Dim myWBpath As String
myWBpath = ActiveWorkbook.Path
Workbooks.Open FileName:=myWBpath & "\testData1.xls"
Sheets("sheet1").Select
ActiveWorkbook.SaveAs FileName:="C:\outFile.csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close
End Sub
No.2ベストアンサー
- 回答日時:
Application.DisplayAlertsをFalseにすることでSaveAsでの警告の表示を停止することができます。
Closeでの変更保存のメッセージは、SaveChangesをFalseにすればOKです。
この修正を含めてちょっと手を入れてみました。
Sub OutFile()
Dim myWBpath As String
Dim objBook As Workbook
Err.Clear
On Error GoTo OutFile_Err
'画面の更新を停止してい処理を高速化
Application.ScreenUpdating = False
'パス名の取得
myWBpath = ActiveWorkbook.Path
If Right(myWBpath, 1) <> "\" Then
myWBpath = myWBpath & "\"
End If
'ワークブックをオープン
Set objBook = Workbooks.Open(Filename:=myWBpath & "testData1.xls")
'警告の表示を停止
Application.DisplayAlerts = False
'開いたワークブックのSheet1をCSVで保存
objBook.Worksheets("sheet1").SaveAs Filename:="C:\outFile.csv", _
FileFormat:=xlCSV, CreateBackup:=False
'開いたワークブックを閉じる
objBook.Close SaveChanges:=False
'変数の開放
Set objBook = Nothing
OutFile_Err:
'エラー発生時の処理
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation, "エラーの報告"
End If
'警告の表示の再開
Application.DisplayAlerts = True
'画面更新の再開
Application.ScreenUpdating = True
Exit Sub
End Sub
No.1
- 回答日時:
Saved を使用すると回避できます。
。。Sub OutFile()
Dim myWBpath As String
Dim xlBook As Excel.Workbook
Const outCsvFile As String = "C:\outFile.csv"
'CSVファイルの削除
On Error Resume Next
Kill outCsvFile
On Error GoTo 0
'画面描画停止
Application.ScreenUpdating = False
'ブックパス取得
myWBpath = ActiveWorkbook.Path
'ブックオープン
Workbooks.Open Filename:=myWBpath & "\testData1.xls"
Set xlBook = ActiveWorkbook
With xlBook
'シート1を出力
.Sheets(1).Select
.SaveAs Filename:=outCsvFile, FileFormat:=xlCSV, CreateBackup:=False
'擬似的に保存したようにする
.Saved = True
.Close
End With
'画面描画再開
Application.ScreenUpdating = True
MsgBox "終了"
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
PC内で速度を遅くした音源をCD...
-
個別に違う添付ファイルを付け...
-
Fortniteのクラッシュについて
-
【至急】エクセル プルダウンを...
-
エクセルで「特定の文字を含む...
-
ファイル数と合計サイズの取得方法
-
ビデオファイルのプロパティの...
-
garagebandのLR Mixの方法について
-
エアコンの冷媒 R410Aの重...
-
リストビューで選択行の背景を...
-
WebBrowser Controlでフィルタ...
-
FLVファイルをホームページ上で...
-
マイクロミニはいくつまで穿い...
-
多数の見開き画像を自動で二分割
-
ACCESSで他のアプリケーション...
-
VBS フォルダ内にあるすべての...
-
ホームページがアップデート&...
-
バックグラウンドでwavファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PC内で速度を遅くした音源をCD...
-
個別に違う添付ファイルを付け...
-
A4の紙に印刷されている文字を...
-
e-taxで送信ファイルの拡張子が...
-
ガラケーからPCへの写真の取り込み
-
2枚、マイクロSDカードを入...
-
エクセルで「特定の文字を含む...
-
エアコンの冷媒 R410Aの重...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
情けない話ですが成田エクスプ...
-
ビデオファイルのプロパティの...
-
Fortniteのクラッシュについて
-
VBS フォルダ内にあるすべての...
-
カメラのフラッシュは大丈夫?
-
拡張子「.IDJ」を、windo...
-
スマホでtxtファイルを編集する...
-
VBA:カウンターの i の値が開放...
-
TextBoxにフォーカスを与えると...
-
ファイル数と合計サイズの取得方法
-
GIMP separate+プラグイン クラ...
おすすめ情報