LoginSignup
frswataru
@frswataru (本石 渉)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VBA 確認画面をスルーまたはハイを選択したい

Q&AClosed

解決したいこと

毎回下記の確認画面が出てきます。毎回ハイをクリック選択するのが面倒です。
確認画面をスルーまたはハイを選択したいです。
解決方法を教えて下さい。
image.png

image.png

該当するソースコード

Sub Sample()

Dim so As Object, p As String, r As String
Dim f As String, bk As Workbook, n As String
Set so = CreateObject("Scripting.FileSystemObject")
p = CreateObject("Shell.Application").Namespace("shell:Downloads").self.Path
r = Application.CurrentProject.Path & "\JPIO"

If so.FolderExists(r) = False Then
    so.CreateFolder (r)
End If


f = Dir(p & "\cU*.csv")
Do Until f = ""
Set bk = Workbooks.Open(p & "\" & f)
    With bk.ActiveSheet
    rows("1:1").Delete
    End With
n = r & "\" & "JPIO" & ".csv"
bk.SaveAs fileName:=n, FileFormat:=xlCSV
bk.Close
Set bk = Nothing
f = Dir()
Loop


End Sub
1

1Answer

ファイルの置換

強制的に確認画面を出さないようにする設定です。

Application.DisplayAlerts = False
' 保存が入る処理
Application.DisplayAlerts = True

Do~Loopの前後に設定するのがいいと思います。
解決はすると思いますが、できれば「既存のファイルがない状態」にするのがいいと思います。
ファイル名をチェックして、あった場合は消すは面倒なので

  • 保存するフォルダを新規で作る
  • 保存するファイル名に重複がないようにする(日時などを追加)

などが楽だと思います。

保存の有無

Closeメソッドの引数にsavechanges:=falseを指定します。

  bk.Close Savechanges:=false

その他

個人的な好みですが、Dir関数は使わない方がいいと思います。

  • Dir関数は別のところで呼ばれたら、そっちの設定になってしまう。
  • 使いたくないDo~Loopを使用せざるおえない。

既にFileSystemObjectを呼び出しているのでご活用ください。サブフォルダも対象にできますしね。

1

Comments

  1. @frswataru

    Questioner
    ありがとうございます。
    参考にします。

Your answer might help someone💌