2017-03-28 3 views
1

SharePoint上で部門全体にアクセスする* .xlsmファイルがあります。問題は、このファイルを開いたときに読み取り専用で自動的に開いていることです(おそらく、SharePoint設定のためです)。ウィンドウ上部のプロンプトは次のとおりです。Excel VBA:読み取り専用設定でca変更のイベントをキャプチャする方法? ExcelファイルがSharePoint上で開き、自動的に読み取り専用に設定されます

Server Read-Only This workbook was opened from a server in read-only mode. [Edit Workbook]

  • 私は読み取り専用ファイルが開かれ、私のファイルを構成したときに
  • に応じて設定をキャプチャする方法を知っている私が促すように方法を知っていますワークブックが開かれているときにユーザーが読み取り専用の設定を変更する。私は、ユーザーを押す[編集ワークブック]とファイルは、もはや読み取り専用であるときに、イベントをキャプチャする方法がわからない

    は、これは私の問題です。

私の唯一の回避策は、コードの実行ごとに常にファイルの読み取り専用の設定をチェックすることです。これは、パフォーマンスが低下したために実行するのではなく、常に機能するとは限りません。

だから私は困惑しています。どのようにこのイベントをキャプチャするための任意のアイデアですか?

+0

かなり単に:

これは、MSDNの記事へのリンクです。これは、正当な理由で自動化できないExcelの組み込みセキュリティの一部です。あなたが持っている最良の選択肢は、ユーザがワークブックの編集ボタンを押した後にのみ実行される 'Workbook_open'イベントにいくつかのコードを入れることです。とにかくこのイベントをキャプチャする必要があるのはなぜですか? –

+0

@MacroMan問題は、 'Workbook_open'イベントが、' Edit Workbook'プロンプトが表示される前にトリガされるようにExcelによって設定されていることです。私がこれを必要とする理由について、ツールは多国籍チームの周りに実行可能なアイテムを送信するように設定されています。私は、ユーザーがこれらの行動の記録なしに行動を送ることを望んでいない。 – W5ALIVE

+0

プロンプトが処理される前にコードが実行されることはありません。ユーザーの許可なく実行されているコードを回避するためのセキュリティプロンプトです。 'Workbook_Open'イベントが実行された場合は、ユーザーがブックの編集ボタンを押したためです。 –

答えて

0

私の答えが見つかりました。

ファイルをSharePoint経由で開くと、ファイルが自動的に読み取り専用で開き、黄色のプロンプトが表示され、ファイルを編集するかどうかをユーザーに確認します。

コマンドThisWorkbook.LockServerFileは、ちょうど[Edit Workbook]が押されたかのように動作します。 Workbook_Open()イベントに配置すると、このファイルを開くたびにこのコマンドが実行されます。問題は、このコマンドをローカルドライブで実行するとエラーが返されるため、エラーハンドラが必要であるか、環境を検出する必要があるということです。 - あなたがすることはできません https://msdn.microsoft.com/en-us/library/office/ff838567.aspx

関連する問題