過去ログ

                                Page     679
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼読み取り専用メッセージの回避  ハタ 03/2/4(火) 14:31
   ┗Re:読み取り専用メッセージの回避  ichinose 03/2/5(水) 7:42
      ┗Re:読み取り専用メッセージの回避  ハタ 03/2/5(水) 10:12

 ───────────────────────────────────────
 ■題名 : 読み取り専用メッセージの回避
 ■名前 : ハタ
 ■日付 : 03/2/4(火) 14:31
 -------------------------------------------------------------------------
   わからない点が有りますので、皆さんお力をおかし下さい。


現在使用中のブックを、他のPCで開いた場合、
使用不可のメッセージを表示させて、エクセル自体を
終了させるマクロを作成しています。

ブックオープン時に動作するように、下記内容にてマクロを作成しました。

*************************************************************

Private Sub auto_open()
  
  'オープンチェック
  If ActiveWorkbook.ReadOnly = True Then
  
    MsgBox "他のPCにて使用中の為、使用する事が出来ません!"
    
    Application.DisplayAlerts = False
    Application.Quit
    
  End If
    
End Sub

*************************************************************

上記マクロ実行前に、ファイル使用中 読み取り専用 or 通知 or キャンセルの
メッセージが表示されてしまうので、このメッセージが表示されない方法を教えて
もらえないでしょうか。

宜しくお願いします。
 ───────────────────────────────────────  ■題名 : Re:読み取り専用メッセージの回避  ■名前 : ichinose  ■日付 : 03/2/5(水) 7:42  -------------------------------------------------------------------------
   ▼ハタ さん:
おはようございます。

>現在使用中のブックを、他のPCで開いた場合、
>使用不可のメッセージを表示させて、エクセル自体を
>終了させるマクロを作成しています。
>ブックオープン時に動作するように、下記内容にてマクロを作成しました。
>*************************************************************
>Private Sub auto_open()
>  'オープンチェック
>  If ActiveWorkbook.ReadOnly = True Then
>    MsgBox "他のPCにて使用中の為、使用する事が出来ません!"
>    Application.DisplayAlerts = False
>    Application.Quit
>  End If
>End Sub
>*************************************************************
>上記マクロ実行前に、ファイル使用中 読み取り専用 or 通知 or キャンセルの
>メッセージが表示されてしまうので、このメッセージが表示されない方法を教えて
>もらえないでしょうか。
別のブックからこのブックを呼び出したときは,上記メッセージが出ないので、
起動ブックと実行ブックを分ける方法はどうでしょうか?

Auto_Openの内容によってはVBScriptから実行させるようにしてみてもOKでした。
'======================================================================
Dim xlsApp
Dim xlsBook
Dim xlsSheet
Set xlsApp = createObject("Excel.Application")
xlsapp.visible=true
Set xlsBook = xlsApp.workbooks.open("D:\My Documents\TESTエリア\READONLY.xls")
'                  上のコードを含むブックを開く
xlsapp.run xlsbook.name & "!auto_open"
'auto_openプロシジャーの実行

以上のコードを.txtファイルをメモ帳などで作成し、拡張子を.txtから.vbsに変えてから実行してみてください。
 ───────────────────────────────────────  ■題名 : Re:読み取り専用メッセージの回避  ■名前 : ハタ  ■日付 : 03/2/5(水) 10:12  -------------------------------------------------------------------------
   ▼ichinose さん:おはようございます。
レス有り難うございます。

>Dim xlsApp
>Dim xlsBook
>Dim xlsSheet
>Set xlsApp = createObject("Excel.Application")
>xlsapp.visible=true
>Set xlsBook = xlsApp.workbooks.open("D:\My Documents\TESTエリア\READONLY.xls")
>'                  上のコードを含むブックを開く
>xlsapp.run xlsbook.name & "!auto_open"
>'auto_openプロシジャーの実行

教えて頂いた通り、上記をコピー&ペーストにて、txtファイルを作成後、
拡張子を、vbsに変えて実行してみたところ、最初はエラーが発生しました。

『エラー行』
※xlsapp.run xlsbook.name & "!auto_open"

色々と調べてテストしてみましたら、xlsapp.runとxlsbook.nameの間の
スペースが全角スペースでしたので、そこを修正したところバッチリ動作しました。

スペース1つで動作するしないという事も踏まえて、大変参考になりました。
本当に有り難うございました。

今後とも宜しくお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 679