• ベストアンサー

エクセルVBAでマクロ入りのブックを共有した時

お世話になります、 エクセルのシートを伝票入力画面に使って データはMDBに格納しています。 (エクセル、MDBとも同一フォルダ) このフォルダをLAN上(NASとか)で 複数ユーザーが同時アクセスをすると エラーになるでしょうか? シート自体書込み(SAVE)は一切行っていません。 デバッグ環境はあるのですが人がいない為 エラーを再現できずに困っています。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.1

保存しないとはいえ、共有されることで 同じセルへの書き込みが行われるときに エクセルが細かな排他制御を ファイルサーバー上のファイルを使い行うので危険と思います。 入力用のマクロブックをファイルサーバー上に置けば マクロブックを一元管理できるので その利点は大きいと思いますが、私ならやりません。 私だったら、 ファイルサーバー上に入力用のマクロブックに置き 更に、次のような動作をするbatファイルをサーバー上に置き 利用者にはこのbatファイルを実行させるようにします。 ・ファイルサーバー上のマクロブックを  自PCの%temp%フォルダーに複写 ・複写したマクロブックを実行 それにより一元管理ができますし 排他によるトラブルも避けることができます。

sn3629
質問者

お礼

ありがとうございます、もう少し頑張ってみますがバッチファイルですかね、最後は。お世話様でした

sn3629
質問者

補足

ありがとうございます、元々スタンドアロン用に作成した配布アプリを(MDBのトランザクション処理は行っていますが)サーバー上で共有アプリとして使いたいという話でした。自分でも多分駄目だろうなぁ、とは思っていました。各々のPCにマクロが入ったエクセルを置いてサーバー上のMDBに接続させてみようとマクロのMDB接続部分を変更してみたのですが、今度はMDBのオープンにやたら時間がかかり使い物になりそうもありません、何か良い考えはないでしょうか?宜しくお願い致します。 デバッグしているサーバーはNAS Navigatorです。

その他の回答 (1)

  • ann_k
  • ベストアンサー率25% (1/4)
回答No.2

とりあえずやってみたけどエラーにはならないですね。 シートに書き込みしないんならExcelを共有する意味が無い気がします。 読み取り専用でいいのでは。 サーバ上のMDBの処理に時間がかかるのなら、共有とかとは別問題でしょう。 処理に必要なテーブルだけをリンクテーブルで抜粋してローカルに別ファイル作ってみてはどうでしょうか。

関連するQ&A

  • エクセル・ブックの共有化について

    質問させて頂きます。現在、会社にて、エクセルブックを共有化し、 同時入力作業を行っています。その際、 ○エクセル2007のユーザー、複数人による同時編集は可能 ○エクセル2003ユーザー、2007ユーザーが混じった場合、 最後に保存をした人が入力したデータのみが反映されている (同時編集が出来ない) 上記事象が起きてしまっています。2007ユーザーと 2003ユーザーが混在した状態で、同時編集をすることが 出来ないのでしょうか?お手数お掛け致しますが、お教え 下さいませ。

  • エクセルシートの共有

    既に作成済のフォーマットに対して、5人で同時に数値の入力作業のみをしたいのですが・・・ エクセルシートはサーバー内にフォルダを作って入れておきます。 その際のエクセルの設定ですが、 エクセルのツール→シートの共有→編集→複数のユーザーによる同時編集・・・にチェックON 以上の他に、必要な操作は有るのでしょうか? 5人共、OSはXPです。

  • 1つのエクセルブックに複数PCから登録するマクロ

    お世話になります。 サーバーにある1つのエクセルブック(データ蓄積用)に、複数のユーザーがエクセルの登録フォームからマクロを使って登録の処理を行いたいと思っています。 この場合のバッティング回避方法を教えて頂けないでしょうか? 登録フォームのマクロ内容は、「登録ボタンを押した時、サーバーのエクセルブックを開き、今回データを1行追加書き込み後、上書き保存して閉じる」というものです。 問題は、複数のユーザーがたまたま同時に登録処理をした場合、後からサーバーのエクセルブックにアクセスしたユーザー側は、読み取り専用のために書き込み出来ず、エラーになると思われることです。 そこで、登録フォームのマクロを「サーバーのエクセルブックが読み取り専用の場合、読み取り専用じゃなくなってから書き込み処理」とすれば良いのではないかと考えました。 他のユーザーが書き込みのためにブックを開いている時間はほんの一瞬だから、可能な気がするのですが・・・。 実際、これは可能でしょうか? もし、可能であれば具体的なサンプルコードを記述頂ければ大変ありがたいです。 また、違う方法があれば、ご教授願います。 よろしくお願いします。

  • VBAでエクセルに別のエクセル内の値を取り込む

    前提: ・あるフォルダ下に30~50のエクセルファイルが格納されている。 ・それぞれのエクセルファイルは全く同じフォーマットである。 ・エクセルファイルは複数(5~8)のシートで構成されている。 実現したいこと(今回ご教授いただきたいこと): 1. 上記エクセルファイルのあるひとつのシートを別フォルダに格納されているエクセルシートの ひとつのシートに一括で取り込みたい。 または 2. 上記エクセルファイルにあるひとつのシートをアクセスに一括で取り込みたい。 ちなみに集計したいデータはDBテーブルの形をしています。 つまり、本来50ほどあるエクセルファイルのあるシートを一つずつ50回「アクセスへエクスポート」する 作業をVBAで実現したいのです。 1.であれば、すべてを取り込んだエクセルファイルをアクセスへエクスポートするつもりです。 VBAは素人なので(ま、素人なのはVBAに限りませんが)ノーアイディアです。 何とぞよろしくお願いいたします。

  • 共有ファイルにあるマクロの同時実行について

    VBAマクロつきのエクセルファイルを共有ネットワーク上のフォルダに置く予定ですが、複数ユーザが別々のPCでそのファイルを開き、まったく同時にマクロを実行したらどうなりますか? 何かエラーが出るのでしょうか。Err関数ではそのようなエラーコードは見当たらなかったのですが・・・。 ちなみにそのマクロの内容は以下のとおりです。 ・エクセルシート上のコマンドボタンを押すと、自分自身のコピーファイルを作成し、そのコピーファイルを指定されたWebサイト上に保存する。 ご存知の方、回答よろしくお願い致します。

  • EXCELのブックの共有について

    サーバーにログインするネットワーク環境です。各クライアントはパスワードが設定されています。サーバーに共有フォルダを置いてその中のEXCELブックを共有にして、複数ユーザーが同時に編集できるようにしたいのですが、最初に上書保存したユーザー以外は読み取り専用になってしまいます。 ファイルのアクセス権の問題のようですが、よくわかりません。 サーバーは2003Server クライアントはXPProです。 アドバイス頂けたら大変助かります。宜しくお願い致します。

  • ブックを開いて閉じるVBA

    初めまして、ブックを開いて閉じるループのVBAについて質問させてください! 別添の画像のようなブックAの中に、「りんご」のように名前のついたシートが複数あります。(この数は変動します。来月は「ぶどう」が入るかもしれないし、「りんご」がなくなるかもしれません。) そして「新しいフォルダ」という名前のフォルダに、別添の画像のようにいくつかブックAのシートの名前を含むファイルが入っています。別添画像のように、シートの名前は必ず含むものの、ファイル名はバラバラで、「すもも」のようにシートにはないものもあります。そして、「みかん」のようにシートにあるのにファイルがない場合もあります。 このうち、ブックAに存在するシートの名前を含むファイルのみ開いて閉じるというループのVBAを入力したいのですが、どうすればよいのでしょうか…?!ちなみに、「すもも」のようにブックAに存在しないシートの名前のファイルは開かないでおきたいです。 「みかん」のようにシートはあるがファイルがない場合は、エラーを出さずそのまま次の処理をすすめたいです。 ちなみに、「新しいフォルダ」の存在する場所は 「C:\Users\PC〇〇〇\Desktop\新しいフォルダ\」です。 VBA初心者なので、なるべく簡素なものにしたいと思っています。 ご助力いただけると大変嬉しいです…!よろしくお願いいたしますm(_ _)m

  • AccessのVBAで、Excelのマクロを起動したい

    環境 OS:XP    OFFICE:2003 Accessで、同一フォルダにあるエクセルのマクロを起動したいのですが、どのようにコーディングすればよろしいでしょうか? フォルダ:C:\test Access:テストAccess.mdb Excel:テストExcel.xls 起動したいマクロ Sub all_delete() Sheets("シートA").Select Cells.Select Selection.Delete Shift:=xlUp End Sub よろしくお願いします。

  • 共有設定時のエクセルVBAのグローバル変数

    お世話になっております。 エクセルVBAについて質問をいたします。 現在エクセルVBAを使用してソフトを作成しております。 複数の人が操作を行うために、 エクセルの設定の「ツール」→「ブックの共有」→「複数のユーザーによる同時編集と、ブックの結合を許可する」を有効。 という設定を行っております。 この状態で、LAN上にソフトをコピーして同時編集可能にしております。 この時に、VBAで作成したプログラムの中のグローバル変数等の値は、同時編集された時に保護(ロック)されるのでしょうか? それとも、後から書いた人のデータが上書きされてしまうのでしょうか? よろしくお願いします。

  • 複数のエクセルブックをひとつのブックにまとめる方法

    同一フォルダに複数のエクセルブック(100個以上)が入っています。 その中のSheet1だけ(Sheet1~3まですべてのブックにあります)を一つのエクセルにまとめたいです。 ブックの中にSheet1、Sheet1(1)、Sheet1(2)・・・ みたいになればいいです。 Sheet名がブック名になるのが理想ですが。。 どのようにすればよろしいでしょうか?

専門家に質問してみよう