過去ログ

                                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」を選択するようにしてメッセージを非表示に
  するにはどうしたらよいでしょうか。
  
 ───────────────────────────────────────  ■題名 : Re:警告メッセージの非表示  ■名前 : オシャ <seigo_abo@wing.zero.ad.jp>  ■日付 : 02/10/4(金) 20:37  -------------------------------------------------------------------------
   Application.DisplayAlerts = False

としてみたら如何ですか?
 ───────────────────────────────────────  ■題名 : Re:警告メッセージの非表示  ■名前 : Reiko  ■日付 : 02/10/5(土) 0:18  -------------------------------------------------------------------------
   ▼オシャ さん:
>Application.DisplayAlerts = False
>としてみたら如何ですか?

(1)については見事解決しました!ありがとうございました。

ただ、(2)についてなのですが、
Application.DisplayAlerts = False としてしまうと
「○○.xlsは既に開いています。2重に開くとこれまでの変更内容は
 破棄されます。○○.xlsを開きますか?」
のところで強制的に「Yes」を選択してしまい、
なぜかその後マクロ処理が止まってしまうのです。
これは何故なんでしょうか?

「No」を選ぶとマクロは止まらないので
 Error処理に持っていけるのですが・・・
 ───────────────────────────────────────  ■題名 : Re:警告メッセージの非表示  ■名前 : オシャ <seigo_abo@wing.zero.ad.jp>  ■日付 : 02/10/5(土) 4:34  -------------------------------------------------------------------------
   ▼Reiko さん:
>ただ、(2)についてなのですが、
>Application.DisplayAlerts = False としてしまうと
>「○○.xlsは既に開いています。2重に開くとこれまでの変更内容は
> 破棄されます。○○.xlsを開きますか?」

これは警告メッセージ云々よりも、自分自身のブックを
二重に開かないようにする事が先決ですね。
差し支えなければ、(2)のソースコードを書いて
もらえれば何かレスできると思うのですが。。
 ───────────────────────────────────────  ■題名 : Re:警告メッセージの非表示  ■名前 : Reiko  ■日付 : 02/10/5(土) 13:32  -------------------------------------------------------------------------
   >これは警告メッセージ云々よりも、自分自身のブックを
>二重に開かないようにする事が先決ですね。
>差し支えなければ、(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

こんな感じです。
 ───────────────────────────────────────  ■題名 : すでに同じブックが開かれているかどうか  ■名前 : 谷 誠之 <tanitomo@vbalab.net>  ■日付 : 02/10/5(土) 15:53  ■Web : http://www.vbalab.net  -------------------------------------------------------------------------
   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
 
のようにすればいかがでしょうか。
そうすると、すでに開いているブックは開かれなくなりますよ。
 ───────────────────────────────────────  ■題名 : ありがとうございます!!解決しました。  ■名前 : Reiko  ■日付 : 02/10/5(土) 16:28  -------------------------------------------------------------------------
   これで懸案が解決しました!

オシャさん、谷さん、
本当にどうもありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 166