Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Home Premium : Excel 2010)
共有ファイルの一時無効化・有効化
投稿日時: 19/06/26 10:32:59
投稿者: カールおじさん

自分のパソコン内のファイル[aaaaa.xlsm]を開き当日のデータを記録します。
そのデータをOneDriveにある共有ファイル[ccccc.xlsx]を開き転記します。
その時、共有ファイルを開らき、転記している間に他の共有者が同じファイルにアクセス出来ないようにそのファイルを一時共有無効化にしたいです。
そして転記作業が終わったら、また共有ファイルを有効化に戻したいです。
次のコードの後、共有無効化と共有有効化部分をどのような構文にすればよいかご教示ください。
Workbooks.Open Filename:="C:\Users\zzzzz\OneDrive\bbbbb\ccccc.xlsx"
共有無効化
転記作業(略)
共有有効化
ActiveWorkbook.Save
以下略

回答
投稿日時: 19/06/26 14:56:51
投稿者: WinArrow
投稿者のウェブサイトに移動

その時、誰かが当該ファイルを開いていると、共有開示もできなくなります。
 
利用者全員が更新できる権利を持っているのでしょうか?
特定の利用者(1人)だけが、更新できる権利がある運用ならば、
対応策はありますが、複数の利用者が更新するような運用ならば
Excelでは、むずかしいのではないでしょうか?
 
データベースアプリケーションを検討したほうがよいでしょう。

投稿日時: 19/06/26 18:04:57
投稿者: カールおじさん

 WinArrowさん
>利用者全員が更新できる権利を持っているのでしょうか?
その通りです。アクセスできる人は全員編集権があります。
ファイルの所有者のパソコンで当日のデータを作成し、転記処理を行います。
従って、ファイルの所有者(パソコン)以外を共有を無効にしたいのです。
他の人は転記後自分のパソコンからOneDriveのファイルにアクセスしてコメント等を追記します。、

回答
投稿日時: 19/06/26 18:28:42
投稿者: Suzu

引用:
他の人は転記後自分のパソコンからOneDriveのファイルにアクセスしてコメント等を追記します。、


引用:
"C:\Users\zzzzz\OneDrive\bbbbb\ccccc.xlsx"

を拝見する限り、ローカルにアクセスしています。
 
OneDrive の仕組みは判りませんが
上記のファイルを削除すると、サーバー上のファイルはどうなりますか?
 
「削除」されるのであれば 「OneDrive」フォルダから
 別フォルダに移動させ、移動後のファイルを操作する様にしては?
 
 操作し終えたら、別フォルダから、OneDrive フォルダに移動する。
 
 
複数人 同時編集 でも反映されるのが OneDriveの長所ではないのですか?
OneDriveを使わないで別の方法で運用した方が良いのでは?

回答
投稿日時: 19/06/26 21:16:17
投稿者: WinArrow
投稿者のウェブサイトに移動

OneDriveの運用として、同期を一時停止するのは、自分ですよね?
本当は、他の利用者を外したいのでは?
 

投稿日時: 19/06/27 07:35:10
投稿者: カールおじさん

WinArrowさん
OneDriveについては理解して使っているつもりです。
この記録システムの[aaaaa.xlsm]は教室が所有者になり、[ccccc.xlsx]共有は教室が許可しています。そしてメンバー全員が教室のパソコンを当番で使っており、その間(約2時間)[ccccc.xlsx]ファイルも開き放しになっています。一方)[ccccc.xlsx]のアクセス・編集はいつでも自宅でも可能にしてあります。
その日の当番がシステムの起動・受付・内容入力転記をしているのですが、作業を終わり[ccccc.xlsx]に正しく転記されたか今一度[ccccc.xlsx]を開いてみると、まれにではありますが、転記されず「[ccccc.xlsx]が2つ開かれており、変更をマージすることが出来なかったので、[ccccc-pc-class.xlsx]として保存しました」のOneDriveのメッセージが表示されるのです。そこでそのファイルを開いてみると、過去データーとともに当時のデータが転記されています。そのため手作業で当日分のデータをコピペで[ccccc.xlsx]に追加し、用済みの[ccccc-pc-class.xlsx]を削除してます。このような「変更をマージできない」ことはググってみると私たちだけではないようです。
まれにではありますがこの現象を防ぐため教室開催の間は、教室のPC以外を一時的に共有を無効にしたいのです。OneDriveでは共有の無効・有効の切り替え操作は可能なようです。
考えてみると使うファイルはエクセルですが、共有はOneDriveの仕組みなので、エクセルのマクロではOneDriveの仕組みの操作はできないのかと思いあきらめて閉めます。