VBA 共有サーバーからローカルドライブへの接続

このQ&Aのポイント
  • VBAを使用して、共有サーバー内のエクセルファイルから特定のメンバーのローカルドライブ内のエクセルファイルを参照する方法について教えてください。
  • 以前の質問で教えていただいたVBAをベースに、他のメンバーが共有サーバー内のファイルからマクロを実行しても、特定のメンバーのローカルドライブ内のファイルを参照する方法がわかりません。
  • 共有サーバー内のエクセルファイルから、全てのメンバーが特定のメンバーのローカルドライブ内のファイルを参照するVBAを教えてください。
回答を見る
  • ベストアンサー

VBA 共有サーバーからローカルドライブへの接続

※この質問は、以前の質問で完全解決前に、自分で受付終了としてしまったので、改めて質問させていただくものです。 以前の質問:http://okwave.jp/qa/q9054210.html 【実現を希望したいこと】 エクセルファイル(ファイル(1))を自分のPCのローカルドライブ(Cドライブ)に置いておき、会社内の共有サーバー内にある別のエクセルファイル(ファイル(2))にて、DSUMのVBAを実行して、エクセルファイル(1)のデータをDSUM集計する。 (ファイル(1)内のデータを、ファイル(2)のDSUMマクロのデータベースとして実行するという感じ) 【以前の質問でご教示いただいたVBA】 sub macro1()  application.screenupdating = false  workbooks.open filename:="C:\DB.xlsx" ’拡張子他注意  with thisworkbook.worksheets("Sheet1") ’シート名不明注意   .range("D2").formula = "=DSUM([DB.xlsx]Sheet1!A:D,4,A1:C2)"   .range("D2").value = .range("D2").value  end with  workbooks("DB.xlsx").close false  application.screenupdating = true end sub ※keithin様より教えていただいたものです。 【現在困っていること】 上記VBAをベースに少し手直したVBAをつかい、私自身が共有サーバー内のファイル(2)からマクロを実行したところ、希望通り動きました。 しかしながら、他のメンバーが共有サーバー内のファイル(2)からマクロを実行したところ、 workbooks.open filename:="C:\DB.xlsx" の部分がうまいこといきませんでした。まあ、そりゃCドライブ内という記述なので、他メンバー自身のCドライブを参照しに行くという命令になりますもんね。。。 【質問】 前置きが長くなってしまい申し訳ございませんが、共有サーバー内のエクセル(ファイル(2))から、どのメンバーがマクロを実行しても、特定個人(私自身)のローカルドライブ(Cドライブ)内のエクセル(ファイル(1))を参照しにいくVBAを教えていただけないでしょうか。 自分としては workbooks.open filename:="C:\DB.xlsx" の記述の変更が必要と思っています。。。 何卒、よろしくお願い申し上げます。

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

  • ベストアンサー
回答No.1

あなたのPCに共有フォルダを作成し適宜設定します。 http://www.atmarkit.co.jp/ait/articles/1406/12/news097.html "C:\DB.xlsx" を "\\あなたのPC名\共有名\DB.xlsx" にすればOKです。 あなたが自PCにログオンしている必要はありませんが起動中でなければなりません。 そのDB.xlsxもファイルサーバーに上げておいた方が良さげな気がしますけど・・・。

kscgakuin
質問者

お礼

ありがとうございます。 希望通り実現できました。 データベースのファイルも、既存共有サーバーに置きたいのですが、ファイル容量がとても大きいため、別に位置づけたかったもので。。 ありがとうございました!

関連するQ&A

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • エクセルVBA ファイル名操作

    エクセルマクロのコードにおきまして 「フォルダの選択」ダイアログから エクセルファイル 123.xlsxを例えば 開くときに それをa.xlsxという名前に変えて 以下のそれに続くVBAコードにおいて a.xlsxを操作したいのですが、 a = Application.GetOpenFilename() Workbooks.Open a これを実行すると求めるダイアログが表示されて 使いたい123.xlsxを開くをクリックしますが これでは123.xlsxがa.xlsxにはなりません このa.xlsxのファイル名で別途ファイル作成する方法を 御教示いただけると助かります よろしくお願いします win10 office365 コードは以下 部分ですが こういう流れで作成したい所存です Sub あいう() a = Application.GetOpenFilename() Workbooks.Open a 'b.xlsxファイルを新規作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\あいう\b.xlsx", FileFormat:=xlXMLSpreadsheet 'a.xlsxファイルの1行目のA1~AG1のセルの値をコピー Workbooks("a.xlsx").Worksheets("Sheet1").Range("A1:AG1").Copy 'b.xlsxファイルのA3~AG3のセルに貼り付け Workbooks("b.xlsx").Worksheets("Sheet1").Range("A3:AG3").PasteSpecial xlPasteValues 以下省略 よろしくお願いします

  • エクセルVBAでの呼出操作をマクロ化するには?

    エクセルVBAでの呼出操作をマクロ化するには? エクセル2000です。宜しくお願いします。 VBAで、ファイルを呼び出したいのですが、Workbooks.openの書き方が良く分かりません。 呼び出すファイル名は決まっていなくて、フォルダ名は固定です。 エクセルの操作で言うと、ファイルを開くを押して、フォルダを選ぶとこまでをマクロかしたいのですが。 例えば、ドライブDの「作業用」フォルダを開きたい場合は、どう記述すれば宜しいでしょうか? 基礎的な部分でお恥ずかしいのですが、以下で実行しても動かんのです。 ChDir "D:\作業用" Workbooks.OpenText Filename:= "D:\作業用\*.*"

  • エクセル 保存是非のダイアログを出さずに保存VBA

    エクセル 保存是非のダイアログを出さずに保存VBA エクセルファイルの ひとつのブック L.xlsxの特定のセルを 別のブックR.xlsxのセルにコピーするを VBAコードで コピーまでは出来たのですが R.xlsxのブックを保存するかどうかの ダイアログが出てしまいます これが出ないで保存できるように ActiveWorkBook.Save これを入れてもやはり保存是非の確認が 出てしまいます コードは -------------------- Sub ID移動() Dim x As Workbook Dim y As Workbook Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\L.xlsx" Set x = Workbooks("L.xlsx") Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\R.xlsx" Set y = Workbooks("R.xlsx") y.Sheets("sheet1").Range("A2") = x.Sheets("output").Range("B2") x.Close y.Close ActiveWorkBook.Save End Sub ------------------ 保存是非のダイアログがでないで 保存できるための方法を 御教示いただけますか win10 office365 すみませんが 宜しくお願い致します

  • Office2010のVBAファイル自動オープン

    VBAの自動オープンで対象ファイルの開き方によって VBAが正常に動かないので質問させt下さい。 ネットワーク上のサーバーである AD-1から開くのとネットワークドライブPから開くのとでは Excelの名前の管理機能が動作しません。 Private Sub Workbook_Open() Workbooks.Open Filename:= _ "\\ad1\共通\aaaa.xlsx" Worksheets("Sheet1").Activate と Private Sub Workbook_Open() Workbooks.Open Filename:= _ "P:\共通\aaaa.xlsx" Worksheets("Sheet1").Activate 両方とも稼働させる方法はあるのでしょうか? よろしくお願いします。 End Sub

  • VBAについてです。

    VBAについてです。 当方VBA初心者です。初歩的な質問があり投稿しました。 Workbooks("aaaa.xlsx").Worksheets("aaa").Range("A3:A50").Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはできるのに Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(50, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはどうしてできないのでしょうか? また、最下行を判別して Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(最下行, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") という様に簡単に処理したいのですが、やはり無理なのでしょうか? ブックが違うのですが、これをなんとかこのような処理にしたいと思っています。

  • EXCEL2010のマクロ - 停止回避策

    EXCEL2010のマクロについての質問です。 EXCEL2007では、全く問題なかったのですが、 EXCEL2010で、下記マクロにて、1位置にて停止します。 但し、このまま継続指示にて、最後まで終了します。 1のファイルには、全く問題はありません。 1を削除しても、2で停止します。 但し、このまま継続指示にて、最後まで終了します。 EXCEL2007版から2010版での仕様変更等と思われますが、 対策案を、ご存知の方、宜しくお願い致します。 途中からです、 Workbooks.Open Filename:="\**.xlsx" ------1 Workbooks.Open Filename:="\**.xlsx" ------2 Workbooks.Open Filename:="\**.xlsx" ------3 Workbooks.Open Filename:="\**.xlsx" ------4 Workbooks.Open Filename:="\**.xlsx" ------5

  • VBA_マクロ内でマクロ実行

    独学でVBAをやってる初心者です。 よろしくお願いします。 EXCEL2003を使ってます。 例) <A.xlsファイル> Sub File_A () Workbooks.Open Filename:="B" Call File_B Range("A1").Select Selection.Paste End Sub <B.xlsファイル> Sub File_B () Range("A2:T5").Select Selection.Copy End Sub A.xlsファイルを開きマクロFile_Aを実行させると B.xlsファイルのマクロFile_Bを実行することができません。 どうしたらうまく実行できますか? 教えてください。

  • シンクライアントでのVBAによるファイル保存

    ExcelのテンプレートファイルにVBAマクロを記述しています。 VBAにより新しいブックを開き、データを作り込んだ後、テンプレートファイルが置かれているフォルダに保存するマクロを作成しました。 リッチクライアント上では問題なく動くのですが、シンクライアント上で実行すると、  ActiveWorkbook.SaveAs Filename:='フルパスのファイル名'  ※フルパスのファイル名は、"C:\folder\file.xlsx"というような形式になっています。 のところでエラーになってしまいます。 パス付きのファイル名について、作法があるようでしたらお教えいただけますか。 よろしくお願い致します。

  • VBAが得意な方 助けてください Rangeについて

    入門書を読みながらVBAを勉強しています。 3日以上繰り返して、ぜんぜんすすみません。困っています。お願いします。ご協力お願いします。 コードの内容は (1)マクロから別のエクセルファイルを開く (2)開いたファイルのシート1を選択 (3)Endプロパティを使ってRange("A65536")から上にジャンプするものです。 本に書いてあったコード通りうち実行しても4行目で以下のエラーメッセージが表示されます。 --出るエラー-- 実行時エラー'1004 'RangeクラスのActivateメソッドが失敗しました。 --使っているコード-- Application.DisplayAlerts = False Workbooks.Open Filename:= "C:\1班.xls" Worksheets("Sheet1").Select Range("A65536").End(xlUp).Activate 使っているものはExcel2000です。 ご協力お願いします。