2012-01-17 23 views
0

書き込み可能なブックへの読み取り専用ショートカットを作成しました。これを行うと、手動でショートカットと実際のドキュメントを個別にクリックすると、同じブックの別々の読み取り専用インスタンスと書き込み可能インスタンスを同時に開くことができます。しかし、私はVBAコードでこれを複製することはできません。 VBAコードを使用して、読み取り専用インスタンスから同じブックを開くしようとするとすると、読み取り専用のインスタンスを閉じてのみ書き込み可能なものと私を残し、EG読み取り専用インスタンスからこれを実行するExcel VBA同じブックを2回開きますが、1つのインスタンスが読み取り専用です

Workbook.Open filename:=ActiveWorkbook.FullName, editable:=True 

インスタンスを終了し、それを書き込み可能なものに置き換えます。私は両方を持つことができるようにしたいと思いますが、これをどうやって行うのか分かりません。理由は、書き込み可能インスタンスへの書き込みアクセスを数秒間しか必要とせず、VBAコードがそれを開いて変更を公開するのに十分な時間で、書き込み可能なインスタンスに加えられた変更を書き込み可能なインスタンスに公開できるようにするためです保存して終了し、読み取り専用のインスタンスを再度有効にします。これにより、チーム内の複数の人が、同じワークブックに「ワークブックを共有する」の制限を受けることなく、ドキュメントを同時に見ることができるようになります。

しかし、誰かの間で変更を加えたらどうなりますか?ユーザーがドキュメントを開いてから他の人が変更を加えた場合、編集可能= falseの上記コードを呼び出すだけで、ユーザーは読み取り専用のインスタンスを再読み込みするように指示されます。

ヘルプを大幅にこのメソッドは、現在のインスタンスでworkborkが開きますので、あなたが言うように、現在開いているworkborkに置き換えられます

答えて

2

を高く評価しました。正しい方向にあなたを取る必要があります

Dim xlApp As New Excel.Application 
Dim xlWrkBk As Excel.WorkBook 

xlApp.WorkBooks.Open FILENAME, , READ ONLY (True/False) 

Set xlWrkBk = xlApp.ActiveWorkbook 

xlApp.Visible = True 

うまくいけば:あなたは、新しいExcelアプリケーションの参照を作成し、その例えば使用して、それを開く必要が編集可能)

+0

私はまだアドインの問題を抱えているようです。 Tools-> Add-Insは、書き込み可能なインスタンスにインストールされているものを表示しますが、コードはロードされません。書き込み可能なインスタンスからアドインコードを呼び出すことはできません。私は再び困惑しています: - \ – Wes

+0

これは、Excelで使用している追加のアドインですか、または開いているドキュメントのVBAコードを参照していますか? –

+0

私は手元の特定の問題を解決しませんでしたが、私はもっと良い解決策を持っていると思います。私はそれを完全にはテストしていませんが、ActiveWorkbook.ChangeFileAccessメソッドを使用して、基本的に書き込み可能なアクセス権を変更し、変更を保存してから、読み取り専用に戻します。もちろん、ドキュメントが最初にチェックされて、ドキュメントが読み取り専用で開かれた後に変更が加えられたかどうかが確認されます。変更されている場合は、ドキュメントを更新してから更新します。 – Wes

0

オープンワークブックを、その後、一時フォルダとのSaveCopyAs一時ファイル名(異なるファイル名である必要があります)を開き、コピーを開きます。

関連する問題