• 締切済み

Excel ネットワーク上の別ブックの参照

ファイルサーバー上に「本社.xls」・「A支店.xls」・「B支店.xls」」・・・というExcelファイルがあり、 本社は全支店の案件の管理表の中から、各支店ごとの案件を抽出したのを「○支店.xls」として与え、 決められた列に各支店が入力した内容を本社のシートが参照、また別の列で逆に本社が入力した内容を各支店も参照する。 つまり本社⇔A支店、本社⇔B支店というふうに双方が書き込み、書き込まれる形をとりたいと思っています。 すべてファイルサーバー上の同じディレクトリにあります。 各列の左端のセルに通し番号を設け、VLOOKUP関数で相手側シートの中から探し出して参照する という形をとることで、 本社と支店で行が違うという問題、またオートフィルタでの並び替えで行が変わったときにも対処できると思っています。 こんな具合です。 A列 番号     B列 案件名    C列 本社からの指示    D列 支店進捗状況 (支店側で) =VLOOKUP(A2,[本社シート.xls]Sheet1!A$2:D$999,3,FALSE) これが、同一のPCで本社とA支店の両方を開くと、本社に入力した内容が瞬時にA支店側で参照され書き換わるのですが、 2つのPCで個別に開くと、自動的に更新されません。 ・「ツール」→「オプション」→「計算方法」で「自動」にチェックは確認しています。 ・「再計算」ボタンをクリックしてもダメ ・VBAで ActiveWorkbook.RefreshAll を実行してもダメ ・一度ブックを閉じ、再度開き「このブックには、ほかのデータ ソースへのリンクが~」で「更新する」を選ぶと更新される。 ・上記の関数の入ったセルで、F2を押して編集状態にし、何も書き換えずにEnterを押すと更新された。 この処理を、自動的に更新されるようにはできないでしょうか。VBAを使っても構いません。 最終的な目的は、表の相互書き込みもそうですが、支店側が開いているときに本社側から強制的に支店側を変更させたいのです。 本社側が更新しようとしていることを支店側へ通知する方法でもOKです。 いまのままだと、支店が開き続けている限り永久に支店側は更新がされませんから。 開いている支店側へ本社側から作用できれば、それをトリガーにして支店側のブックでマクロを作動させることもできるのではと思います。 支店側がちょくちょく閉じてくれればそれでよいのですが、開きっぱなしにされるリスクを回避したいのです。開かれていても何とかなる、という点が大事なのです。 わかる方、どうかご教授ください。

  • ISNAL
  • お礼率33% (1/3)

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

> 支店側が開いているときに本社側から強制的に支店側を変更させたい つまり、今流行の(?)「遠隔操作」ですね^^; 合法的なソフトで、  http://www.symantec.com/ja/jp/pcanywhere シマンテック pcAnywhere と言うソフトがありますので、 場合によっては導入した方が早い可能性はありますね。 さておき、一案ですが・・ 例えば「本店のブック」を開くときに 「支店の最新のデータシートを本店のブックの特定のシートにコピーする」 (「支店のブック」はこの逆の処理) ように作ってしまうとどうなるでしょう? ついでに「任意のタイミングで更新できる」ように作っておけば、 常に(保存された)最新データを見に行けますし、 支店で開いていても問題ないと思います。 本店のブックに「支店データ」を表示するのが不細工だと言うときは 「シートを非表示」も設定できますので、それで見えなくしておけば良いかと。 まぁ、本当はエクセルではなく、アクセスなどを使う事をオススメしたいのが本音ですが・・ ご都合もありますでしょうし、そこは深く言わないようにします。

回答No.2

VLOOKUP関数関係は ツール - オプション 計算方法 の ブックオプション □外部リンクの値を保存する チェックが入っていたら外してみてください。 あと関係ありそうなのは 編集 リンクの設定 値の更新 VBAはわかりません。 同時編集はブックの共有が必要です。あまり、良い評判は聞きませんので良く調べてから使うとよいと思います。 当方XL2003

回答No.1

ヴァージョンは?? ブックを共有して、相互に自由自在に更新する?、運用のポリシーは??

ISNAL
質問者

お礼

言葉足らずですみません。バージョンはOffice2003です。 ブックの共有は何かと問題が生じがちなので使いたくないというのが理由です。支店の数も多いし。 本社が作ったシートの、特定の列に支店が書き込みにいくという形です。 支店側から書き込める内容は限られています。(シートほごによって)

関連するQ&A

  • EXCELで別ブックのセルを参照 シートを替える

    EXCEL初心者です。 毎日四苦八苦しているのですが、行き詰ってしまったのでご教授ください。 使用しているブックをA.xlsとして、 別ブックB.xlsのセル参照を、 ='Z:\[B.xls]Sheet1'!$B$1 のようにしています。 この Sheet1 の部分のシート名をA.xlsの、例えばA1に入力することで、 毎回シート名を変えられるようにしたいのですが、 ='[B.xls]( ココ )'!$B$1  ココの部分をどのようにしてよいかがわかりません。 A.xlsのパス名から書けばよいのかなと思ったのですが、 どうもうまくいきません。 何分必要にせまられてEXCEL勉強し始めたばかりです。 初歩的な質問ですが、すみません、よろしくおねがいします。

  • EXCEL 別のブックにコピペしたときのセル参照

    2つのエクセルブックがあります。 ブックA:sheet1、sheet2 ブックB:sheet1 ブックAのsheet2にはブックAのsheet1を参照した関数が沢山組んであります。 このsheet2をブックBにコピーしたいのですが、ブックBに新しいシートを作りコピペしても、 sheet2を右クリックで「移動またはコピー」にしてもブックBに移したsheet2はブックAを参照してしまいます。   =SUM([ブックA.xls]Sheet1!A3:A7) というように。 ブックAではなく、ブックBのsheet1を参照するように =SUM(Sheet1!A3:A7) となるようにコピペしたいのです。 1つ1つ関数の参照部を消すのも面倒なので、何か良い方法はありませんでしょうか エクセル2003です。よろしくお願いします。

  • エクセルのVLOOKUP関数で他のブックから正しく参照されないセルがある

    台帳xxxx.xlsファイルで住所録.xlsファイルを参照しているのですが最近正常動作しません。 住所録.xls というブックには、メンバーの住所録が入っています。 A列氏名、B列フリガナ、C列電話番号 という項目になっています。 台帳xxxx.xls側には A列連番、B列氏名、C列フリガナ、D列電話番号・・・になっています。 例えば台帳0712.xls というブックには日々のメンバーの動きを記録しており、 Bのセルに氏名を入れればその右側にフリガナ、電話番号が、住所録.xlsから参照されて自動入力されるようになっています。 台帳ファイルは原本を複製して 台帳0713.xls、台帳0714.xls・・・と日々増えていきます。 現在、住所録.xlsは600行を超えてきたのですが、最近、台帳xxxx.xls に氏名を入れるとフリガナ、電話番号の欄がうまく参照されず"0"(ゼロ)と表示されてしまいます。 正しく表示される名前とされない名前が出てきました。 600番台以降の人に多い気がするのですが定かじゃありません。 なぜならその氏名を上位のセルにコピーしても参照結果が"0"だからです。 具体的には、 例えばC列の数式は =IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,2,FALSE)) で、フリガナが自動入力されるようになっています。 ※氏名が未入力のときは"#N/A"のエラー表示がされないようにしています。 どうして"0"が入ってしまう場合があるのでしょう。 行数に限界があるのか疑問です。 またはもっといい方法があれば教えてください。

  • Excelで他のブックのセルを参照したいのですが

    コンボボックスにセットする値を、 VBAで他のブックを参照してセットしたいと思っています。 ブックAのシート1にコンボボックスを作り、 ブックBのシート1から取得しようと考えています。 ブックBのシート1には、あらかじめ「範囲A」の名前を定義して この範囲の値を参照するつもりです。 ただ同じフォルダ内にブックBを置いていれば参照できるのですが、 他のフォルダにブックBを置くと参照されません。 <同じフォルダにブックBを置いた場合>○参照できた ComboBox1.ListFillRange = "[ブックB.xls]シート1!範囲A" <他のフォルダにブックBを置いた場合>×参照されない ComboBox1.ListFillRange = "C:\[ブックB.xls]シート1!範囲A" 記述の仕方がおかしいのでしょうか? 宜しければご教授お願い致します。

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • エクセルのブック参照について教えてください

    エクセルの機能に、あるセルに=[Book1.xls]Sheet6!B5のように指定すると、他のブックを参照することができますが、 これって、ネットワークで繋がった異なるPC同士のブックでも出来るんでしょうか? 例  PC1に置いてある、Book1.xlsのSheet6のB5を PC2で制作中のブックのセルに指定する。みたいな。

  • Excel関数 別のBookからの参照がうまくいきません

    Book1 の4月(Sheet1の名前) に      A   B   C   D  1       4 月        2  Aさん  100   80   20  3  Bさん  200  100  100 Book2 の4月(同じくSheet名)に      A   B    1       4 月        2  Aさん  20 (Book1の4月のAさんのD2がくるようにしたい)  3  Bさん  100              つまり、Book2のA列の名前とBook1のA列の名前を対応させて、Book1の4月のD1を入力すると、Book2の4月のB2が自動的に入力されるように設定したいのです。Book2の月名を5月に変えるとBook1の5月分が参照されるようにしたいのです。 これで、わかるでしょうか? 宜しくお願いします。

  • [EXCEL2007]VBAからの別ブック参照VLOOKUPについて

    初めまして。 EXCEL2007で、VBAからFORMULA式を使って別ブックを参照するVLOOKUPを埋め込もうとしています。 このとき、対象となる別ブックのシートに、検索値に合致する情報がないと、「シートの選択」ダイアログが出てしまうのですが、これを出さずに、式を生かしたまま「#N/A」扱いにする(=ワークシート上でVLOOKUPに失敗したときと同じ結果とする)方法はないでしょうか? いろいろ試したのですが解決策が見つかりませんでした。 実装コードはつぎのような形になってます。 Sheet1.Formula = "=VLOOKUP(B2,'[Book2.xls]Sheet1!$B1:$C255,2,FALSE)" Book2のSheet1のB1:C255に、検索キー[B2]の値があるとき、C列の値を取ろうとしています。 このとき、検索に失敗すると、コード実行中に「シートの選択」ダイアログが出てしまうので、これを回避したいのが質問の主題です。 Application.DisplayAlerts = FALSE でもダメでした。 なにか良いアイデアがありましたらご教唆願います。

  • エクセルで別シートを参照

    「あ」のシートに"社員番号"(A列)と"カナ"(B列)のリストがあり、 「い」のシートには"社員番号"(A列)と"漢字氏名"(B列)・"部署"(C列)のリストがあります。 「あ」のシートのC列とD列に、「い」のシートのB列とC列を表示させるにはどうしたらよいでしょうか。 新規に社員番号を入力していく場合は、VLOOKUPなどで出来ると思いますが、すでに入力済みのデータについて一括で参照する方法が判りません。 よろしくお願いいたします。

  • 【Excel-VBA】アクティブセルが参照しているブックを開くには?

    いろいろ検索したのですが、見つからないので質問させていただきます。 対象のセルが他ブックのセルを参照しているとき、そのブックが開かれていない場合、正しい値にはなりません。 (例:A1に =[Book2.xls]Sheet1!$A$3 が入力されている) そこで、そのセルが参照しているブックをVBAで自動的に開く方法を考えています。 つまり、例で言えば、Book2.xlsを開きたいのです。 文字列関数を使ってひとつひとつの文字を取得し、ファイル名を得て開く方法しかないのでしょうか? 何かいい方法があれば教えてください。 よろしくお願いします。

専門家に質問してみよう