Page 166 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼警告メッセージの非表示 Reiko 02/10/4(金) 18:04 ┗Re:警告メッセージの非表示 オシャ 02/10/4(金) 20:37 ┗Re:警告メッセージの非表示 Reiko 02/10/5(土) 0:18 ┗Re:警告メッセージの非表示 オシャ 02/10/5(土) 4:34 ┗Re:警告メッセージの非表示 Reiko 02/10/5(土) 13:32 ┗すでに同じブックが開かれているかどうか 谷 誠之 02/10/5(土) 15:53 ┗ありがとうございます!!解決しました。 Reiko 02/10/5(土) 16:28 ─────────────────────────────────────── ■題名 : 警告メッセージの非表示 ■名前 : Reiko ■日付 : 02/10/4(金) 18:04 -------------------------------------------------------------------------
いつもお邪魔しています。 今、以下のような警告メッセージを非表示にしたいと 思っています。 (1)コピー&ペーストの際のメッセージ コピー元のSheetを閉じる時に 「クリップボードに大きな情報があります。 この情報を他のプログラムに貼り付けられるようにしますか?」 というメッセージが出ますよね? これを強制的に「Yes」を選択するようにしてメッセージを非表示に するにはどうしたらよいでしょうか。 (2)ブックオープンの際のメッセージ ActiveWorkbookのタイトル名の中に含まれている特定の文字列と 同じ文字列をもつBookを検索して開くようにしているのですが、 その「同じ文字列をもつBook」がフォルダ内にない場合は 自分自身を開こうとして 「×××(ブック名)は既に開いています。 二重に開くとこれまでの変更内容が失われます。 ×××を開きますか?」 というメッセージが出ます。 これを強制的に「No」を選択するようにしてメッセージを非表示に するにはどうしたらよいでしょうか。 |
Application.DisplayAlerts = False としてみたら如何ですか? |
▼オシャ さん: >Application.DisplayAlerts = False >としてみたら如何ですか? (1)については見事解決しました!ありがとうございました。 ただ、(2)についてなのですが、 Application.DisplayAlerts = False としてしまうと 「○○.xlsは既に開いています。2重に開くとこれまでの変更内容は 破棄されます。○○.xlsを開きますか?」 のところで強制的に「Yes」を選択してしまい、 なぜかその後マクロ処理が止まってしまうのです。 これは何故なんでしょうか? 「No」を選ぶとマクロは止まらないので Error処理に持っていけるのですが・・・ |
▼Reiko さん: >ただ、(2)についてなのですが、 >Application.DisplayAlerts = False としてしまうと >「○○.xlsは既に開いています。2重に開くとこれまでの変更内容は > 破棄されます。○○.xlsを開きますか?」 これは警告メッセージ云々よりも、自分自身のブックを 二重に開かないようにする事が先決ですね。 差し支えなければ、(2)のソースコードを書いて もらえれば何かレスできると思うのですが。。 |
>これは警告メッセージ云々よりも、自分自身のブックを >二重に開かないようにする事が先決ですね。 >差し支えなければ、(2)のソースコードを書いて >もらえれば何かレスできると思うのですが。 たびたびありがとうございます。 すこし長くなりますが、以下はコードの抜粋です。 Private Sub CommandButton1_Click() Fil$ = ActiveWorkbook.Path & "\" & TextBox1.Text ActiveWorkbook.SaveAs Fil$ Dim Ifile As String, Ipath As String, CC% Ipath = "C:\Company\経営分析" Ifile = Dir(Ipath & "\" & TextBox1.Text & "*.xls") MsgBox "今から同じ会社名のファイルを検索します " Do Until Ifile = "" CC% = CC% + 1 Workbooks.Open Ipath & "\" & Ifile Ifile = Dir Rtn = MsgBox("同じ会社名のファイルが見つかりました。経営分析基準値を読込み ますか?", vbYesNo, "ファイル検索結果") If Rtn = vbYes Then Range("C65:D87").Select Selection.Copy ActiveWorkbook.Close savechanges:=True Range("C65").Select ActiveSheet.Paste Range("A1").Select Exit Do Else ActiveWorkbook.Close End If Exit Do Loop こんな感じです。 |
Reikoさん、みなさん、谷です。 >>これは警告メッセージ云々よりも、自分自身のブックを >>二重に開かないようにする事が先決ですね。 そうですね。 以下は私が以前作った、「指定されたファイル名のブックが開かれているかどうか」をチェックするための関数です。 Function F_ExistBook(BookName As String) As Boolean Dim i As Workbook F_ExistBook = False For Each i In Workbooks If i.Name = BookName Then F_ExistBook = True Next End Function これは、指定された名前のブックが開かれていたら True、開かれていなければ False を返します。 これを使って、たとえば > Do Until Ifile = "" > CC% = CC% + 1 > Workbooks.Open Ipath & "\" & Ifile > Ifile = Dir ここのところを Do Until Ifile = "" CC% = CC% + 1 If F_ExistBook(IFile) = False then Workbooks.Open Ipath & "\" & Ifile Ifile = Dir Rtn = MsgBox("同じ会社名の・・・", vbYesNo, "ファイル検索結果") If Rtn = vbYes Then : : ActiveWorkbook.Close End If End If Exit Do のようにすればいかがでしょうか。 そうすると、すでに開いているブックは開かれなくなりますよ。 |
これで懸案が解決しました! オシャさん、谷さん、 本当にどうもありがとうございました。 |