SharePointサーバーに保存されているExcelドキュメントがあり、参照する必要があるため、コンピューターで常に読み取り専用モードで開いています。
時々、最新の変更を取得するために、ファイルを閉じて再ロードする必要があります。Excel 2007内に、読み取り専用モードで開いているドキュメントをサーバー上の最新バージョンに更新するオプションはありますか?
さらに良いことに、私が更新を打つ必要なしにこれを動的に行うことができる方法はありますか?
SharePointサーバーに保存されているExcelドキュメントがあり、参照する必要があるため、コンピューターで常に読み取り専用モードで開いています。
時々、最新の変更を取得するために、ファイルを閉じて再ロードする必要があります。Excel 2007内に、読み取り専用モードで開いているドキュメントをサーバー上の最新バージョンに更新するオプションはありますか?
さらに良いことに、私が更新を打つ必要なしにこれを動的に行うことができる方法はありますか?
回答:
Yuvalのソリューションで十分かもしれませんが、変更がセルの内容に限定されている場合のみです。質問者は、これが事実であるかどうかを示しませんでした。それでも、あなたが取り上げたい変更がワークブックのワークシートの追加(場合によっては削除さえ)である場合はどうなりますか?
脆弱で厄介な解決策の1つ:非表示のPERSONAL.XLS(B)にマクロを保存して、定期的に(再スケジュールすることにより)ワークブックを閉じて再度開く。PERSONAL.XLS(B)は%USERPROFILE%\ AppData \ Roaming \ Microsoft \ Excel \ XLSTART \にあります)
Sub wkbRefresher()
Dim refreshedWorkbook As Workbook
Dim WkBks As Workbooks
'full filepath
fPath = "c:\tmp\mutatingWorkbook.xls"
'in HH:MM:SS format:
refreshInterval = "00:05:00"
For i = 1 To Application.Workbooks.Count
Debug.Print (Application.Workbooks.Item(i).FullName)
If LCase(Application.Workbooks.Item(i).FullName) = LCase(fPath) Then
Debug.Print (" Yep thats the one! Lets refresh it.")
Application.Workbooks.Item(i).Close
'refreshedWorkbook = WkBks.Open(fPath, True, True)
Set refreshedWorkbook = Excel.Application.Workbooks.Open(fPath, True, True)
End If
Next i
' Use at your own risk: this is an "asynchronous", the execution cannot be stopped by merely pressing the stop button in the VBA interface.
' You might have to do something like put a break marker on the line OnTime line so that next time around, it doesn't respawn itself.
Application.OnTime Now + TimeValue(refreshInterval), "wkbRefresher"
End Sub
もちろん、上記のsubはパラメーター化することも、カスタムツールバーボタンなどにアタッチすることもできます。ワークブックを保存すると、アクティブシート、アクティブセルなどの状態情報が保存されるため、数行を追加して、希望するアクティブシートの名前を保存し、再度開くたびにアクティブにすることもできます。
参照:
http://office.microsoft.com/en-us/excel-help/run-a-macro-HP010342865.aspx http://msdn.microsoft.com/en-us/library/office/ff196165(v=office .14).aspx
私はすべてを精査しませんでしたが、PERSONAL.XLS(B)について聞いたことがない場合、これは非常に役立つ紹介のようです:http : //www.rondebruin.nl/win/personal.htm