[[20210202164628]] 『DisplayAlerts効かない』(アラト) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『DisplayAlerts効かない』(アラト)

 下記のコードでファイルを閉じる際に「変更を保存しますか」と聞かれるのですが
 DisplayAlertsで出さないようにしているつもりが出来ていないようで・・・
 DisplayAlertsの場所を変えてみたりもしたのですが上手くいきません。
 どなたかご教示いただけないでしょうか。

 With ThisWorkbook
 Application.DisplayAlerts = False
    .Save
    .ChangeFileAccess Mode:=xlReadOnly
    Kill .FullName
    If (Workbooks.Count = 1) Then
        Application.Quit
    Else
        .Close (False)
    End If
 Application.DisplayAlerts = True
 End With

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 テストしてみましたが、警告(とは言わないかもですが)は出なかったですねぇ。

 直ぐあとに Killするものを 何の為に「Save」するのか理解できないのですが、
 このコードの意図は何ですか?

(半平太) 2021/02/02(火) 18:02


 半平太様

 回答ありがとうございます。
 昨日は社休日で出社しておらず返信が遅くなったこと申し訳ございません。

 >直ぐあとに Killするものを 何の為に「Save」するのか理解できないのですが、
 >このコードの意図は何ですか?

 元々Killするつもりなく作っていて、結果的にkillするコードに変更しました。
 不要なので消しました。

 何故か私のPCではアラートが出るので、下記に直したところ出なくなりました。

 With ThisWorkbook
 Application.DisplayAlerts = False
    .ChangeFileAccess Mode:=xlReadOnly
    Kill .FullName
    If (Workbooks.Count = 1) Then
        Application.Quit
    .Close
    Else
        .Close (False)
    End If
 Application.DisplayAlerts = True
 End With

(カウカウ) 2021/02/04(木) 13:56


 半平太様

 すいませんカウカウ=アラトです。
 誤って以前質問した時のニックネームを使ったのを気づかず投稿してしまいました。
 すいませんでした。

(アラト) 2021/02/04(木) 17:52


横からですが、いちいち保存せずとも、Savedプロパティを操作することで【前回保存後から変更されてないこと】にすることができます。
http://officetanaka.net/excel/vba/file/file03.htm

また、括弧を付けている部分がありますが、要らないと思います。
http://officetanaka.net/excel/vba/beginner/07.htm

踏まえると、↓みたいな感じでよかったりしませんか?

    Sub 名も無きまくろ()
        ThisWorkbook.Saved = True

        If Workbooks.Count > 1 Then
            ThisWorkbook.Close False
        Else
            Application.Quit
        End If
    End Sub

(もこな2) 2021/02/05(金) 12:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.