Excel (VBA)

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

 
(Windows 8.1 Pro : Excel 2007)
実行時Administratorに
投稿日時: 21/07/27 10:38:35
投稿者: FILETUBE

一つ教えて頂けないでしょうか。
 
あるブックを開き、末行にデータを追加し
wb.Close (True)で保存しようとすると
名前を付けて保存となってしまいます。
 
ブックには一般ユーザーは読み取りとなっているのですが
VBAを実行する時のみAdministratorにする事は可能でしょうか?

回答
投稿日時: 21/07/27 11:11:39
投稿者: WinArrow
投稿者のウェブサイトに移動

FILETUBE さんの引用:
一つ教えて頂けないでしょうか。
 
あるブックを開き、末行にデータを追加し
wb.Close (True)で保存しようとすると
名前を付けて保存となってしまいます。
 
ブックには一般ユーザーは読み取りとなっているのですが
VBAを実行する時のみAdministratorにする事は可能でしょうか?

 
 
意味がよくわかりませんが、
>Administratororにする
は、上書き保存させたいということでしょうか?
読取専用で開いたブックは、読取専用を解除しない限り
上書き保存はできないと思います。
 
 
「更新者」で開いたときには、
上書き保存できると思いますが・・・・

投稿日時: 21/07/27 13:39:11
投稿者: FILETUBE

回答ありがとうございます。
現状ではコピーして保存になってしまいますので、
上書き保存したいのです。
 
ブックを右クリックしプロパティ、セキュリティをみると
一般ユーザーは読み取りになっています。
 
VBAを実行する時に更新者として実行は可能でしょうか?

回答
投稿日時: 21/07/27 16:09:48
投稿者: WinArrow
投稿者のウェブサイトに移動

https://www.moug.net/faq/viewtopic.php?t=80741&highlight=
 
↑関連の話でしょうか?
 
だとしたら、参照者として実行しているのではないでしょうか?

投稿日時: 21/07/27 16:59:28
投稿者: FILETUBE

 回答ありがとうございます。
何も権限の設定していないブックで試した時は
 
Me.ChangeFileAccess Mode:=xlReadOnly
で更新できる人、出来ない人に分けることができました。
 
ただ権限の設定をしてあるブックになると
OPENにこのような文もコーディングできず。
 
すいません、明朝まで返信できないので
申し訳ありません。
 
 

回答
投稿日時: 21/07/27 18:04:26
投稿者: WinArrow
投稿者のウェブサイトに移動

>権限の設定をしてあるブック
 
どのような権限でしょうか?
どこで、どのような設定しているのでしょうか?
 
状況を説明せずに、質問されても
意図した回答を得ることは難しいでしょう。

投稿日時: 21/07/28 09:33:18
投稿者: FILETUBE

 WinArrow様 
 
 回答ありがとうございます。
 
 共有フォルダにブックAがあり、自分のPCから EXCEL VBAを実行させ
  ブックAに書き込む処理を行いたいのです。
 
 ただ現在は実行すると、コピーして名前を付けて保存になってしまい 
 上書き保存ができない状態となっています。
 
 ブックAの右クリック・プロパティ・セキュリティを確認すると
  
   Administrator が フルコントロール、変更、読み取りと実行、読み取り、書き込みにチェック
   Local Users が 読み取りと実行、読み取りにチェック
   custグループ  が 変更、読み取りと実行、読み取り、書き込みにチェック
  
 となっています。
 
 何とか上書き保存したいのですが、可能でしょうか?
 すいません、ご教授よろしくお願いします。 

回答
投稿日時: 21/07/28 11:43:24
投稿者: Suzu

引用:
Administrator が フルコントロール、変更、読み取りと実行、読み取り、書き込みにチェック

 
Administrator なのですか?
Administrators ではなくて?
 
 
まずはVBA云々ではなく、
 手動にて、ブックA を開き、上書き保存が可能であるか確認 してください。
 
 手動でできないのであれば、ネットワーク管理者 に 書き込みをしたい旨を伝え相談してください。
 
 
いくつか方法は考えられますが、
共有フォルダにて、ユーザー(グループ)毎に権限を変えているのですから
ユーザー側 で 勝手に 変更できる様にするのは 感心しません。

投稿日時: 21/07/28 11:55:09
投稿者: FILETUBE

Suzu様
 
 回答ありがとうございます。
 すいません、Administratorsの間違いです。
 普通にブックを開いての上書き保存はできません。
 VBAの実行時のみ上書きしたいのですが、
 やはり厳しいでしょうか。

回答
投稿日時: 21/07/28 15:10:40
投稿者: Suzu

供給フォルダ との事ですので、
 
フォルダ の権限
ファイル の権限
 
両方が必要です。
 
 
ファイルに書き込み権限が有っても、フォルダに書き込み権限が無いと書き込みできません。
その共有フォルダの別のファイルを開いて、書き込み(上書き保存)できるですか?
 
それらは、Excelの機能ではなく、共有フォルダ を持っている OS の機能により提供されています。
 
 
通常、フォルダの権限は、その共有フォルダを共有した方
  (ファイルサーバーの様な 皆で使用する共有サーバーであれば、その管理者) が 権限を設定します。
 
その権限を持つユーザー名とパスワードが判っていれば、
  その権限を持つことは可能であり、その手法をVBAを使って実現する事も可能です。
 
が、それでは、権限を設定する意味がありません。
ですので、権限を設定した方に相談してください。と言っています。
 
 あなたの ユーザー名 での、書き込み権限を
   共有フォルダ・ファイル に設定してもらうのが、本筋と思います。

回答
投稿日時: 21/07/28 15:18:42
投稿者: Suzu

引用:
 VBAの実行時のみ上書きしたいのですが、
 やはり厳しいでしょうか。

 
技術的には難しくありません。
 
 
引用:
その権限を持つユーザー名とパスワードが判っていれば、
  その権限を持つことは可能であり、その手法をVBAを使って実現する事も可能です。

 
 
1. Windows の コマンドプロンプト の NET USE コマンドにて
  書き込み権限を持つ ユーザー名・パスワード にて、
  そのフォルダを ネットワークドライブとして登録
 
2. ネットワークドライブ経由にて ファイルにアクセスする事で
   1.で使用した 別 ユーザー名・パスワード にて フォルダ・ファイルにアクセス
 
 
ですので、
VBA にて、 1の内容を実施、 WorkBooks.Open にて、 2 の動作をさせれば良いのです。
 
 
それを行っても良いのか、ネットワーク管理者に確認し、実装してください。

投稿日時: 21/07/28 16:27:00
投稿者: FILETUBE

 Suzu様
  
 大変丁寧な回答ありがとうございました。
 上書き保存の為のVBAでの制御は諦めたいと思います。
 また宜しくお願いします。