• 締切済み

ファイルを開かず任意ファイルのセルの値を表示する方法について。

みなさんこんにちは、色々と自分なりに調べてみたつ もりですが、解決できないのでご教示お願い致します。 エクセルで、”ファイルAのセルA1”任意に入力さ れた”ファイル名のA1”の値を”ファイルAのセル B”に表示させたいのですが、どのようにすれば良い のでしょうか? INDIRECT関数のようにファイルが開かれていることを 前提としない方法としたいのですが・・・

みんなの回答

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.4

複数の人が任意のタイミングでデータを入力 する、という時点で既にExcelは使用対象外と なります。そのようなことが出来るソフトで はありません。 ではどうするか。データベースですね。 データベースはそのような使用目的も範疇に入 っています。データベースはタイミングとか 考えなくても、データベースのマネージャソフ トが矛盾がおこらないように管理します。 WEBサーバを立ち上げて、データベースの内容を htmlで入力できるページを作成し、ブラウザで 入力したり、表示するのが一般的です。 勿論、webサーバはLAN内だけで使用できればいい です。 html+MySQL+PHPという基本パターンですね。 XAMPPでセットで手に入ります。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

スイマセン、質問では無いのですが・・・ 目的は INDIRECT の欠点を補う事に有るのですね。 (1)外部参照により他の EXCEL ファイル内のセルを参照したいが、  その参照すべきファイル名称を変数としたい。 (2)INDIRECT ならばこれが可能だが、この関数は参照先のファイルを  開いておく必要がある。しかし これは避けたい。 という事と思います(間違っていたらご指摘下さい)。 マクロが使用可能ならば、google で幾つもヒットしますが、マクロも使用できない(したくない)理由が有るのだと思います(マクロ起動により他アプリケーションへの影響を懸念するなど)。 実は私もこの実現方法を探していて このページを見つけました。 どなたか御存知の方、ご教示頂きます様 お願い致します。

maru_exe
質問者

補足

ありがとうございます。 私のやりたい内容を解りやすくまとめていただいた感あります。 マクロは使用OKです。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

え~っと・・・・ 例えば、「ファイルCシート2 B2」に「こんにちは」と書いてあり。 ファイルBのシート1のセルA1に「ファイルCシート2 B2」と書いてあるとき。 ファイルAを開いた時にファイルBを参照して、そこに書かれている参照先(この場合ファイルC)の内容(こんにちは)をファイルAのセルC1などに表示させたい(リンクさせたい)ということでいいのでしょうか? 単純な値の受け渡しだけなので、ブックの参照を利用すれば可能ですが、2回の参照になるのでもともとのエクセルの機能にはなさそうですね。 VBAなどでも当然可能ですが、無理やりやるなら、以下の方法で可能です。 (「ファイルを開かずに」といっても、参照する以上バックグラウンドで開いていますので開いているのと同じことですし、考え方が複雑なので、その目的はわかりませんが、あまりお薦めはしません。) 1回の参照は「=[ブック名]シート名!セル」でリンクができることはご存知と思います。 (1)ファイルAの空きセルにファイルBへの参照を記載しておく。   (これで「ファイルCシート2 B2」という値は取得可能) (2)workbook_openイベントで(1)の値から参照を作成し、(例えば)セルC1の式にファイルBへの参照を記入。   (ファイルBの記入方法によっては、値の転記だけでOK) (3)記入された新しいリンクをエクセルが自動反映して、「こんにちは」が表示される。 エクセル2000で実験しましたが、(1)のリンク反映は(2)のイベント発生よりも先に処理をされているようですので、順序が逆転することはないようでした。 (2)で作成するファイルパスはフルパスかデフォルトパスの利用になりますので、ファイルBの記載の方法をファイル名だけなどとする場合は、(2)でパスを作成しなおす必要があります。 その際に、きちんと動作するためにはファイル名やシート名などのチェックもしておかないとならないでしょうね。 ↓はファイルCはファイルAと同じフォルダにあり、ファイルBにはファイル名のみ記載されているというルールを仮定して実験したマクロの例(ファイルBに入力された内容のチェックは省略) ---------------------------- Private Sub Workbook_Open()  p = "'" & ThisWorkbook.Path & "\" & Replace(Sheets("シート名").Range("A10").Value, "!", "'!")  Sheets("sheet3").Range("C1").Formula = "=" & p End Sub

maru_exe
質問者

補足

早速ながらありがとうございます。 この方法の場合、バックグラウンドで開くとの事ですので、 そのファイルを他人が開くとやはり読み取り専用で開かれる 事となるのでしょうか。 ファイルパスに注意しなければならない点、ご指導ありがと うございます。

全文を見る
すると、全ての回答が全文表示されます。
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

回答ではありません。 非常に込み入った「手段」を求められています。 このような場合は「目的」からの見直しをお勧 めします。 何をされたいのでしょうか?

maru_exe
質問者

補足

どうもすみません。 確かに込み入った手段かもしれません・・・ 集計表の使用にあたり、3人がそれぞれ任意のタイミングで集計表に データ入力するため、1ファイル複数ブックでは更新や同時アクセス に問題あるため、ファイルを分け同時作業を可能としつつ各データを 収得し集約集計させたいことが目的となります。 (苦しい面ありますが・・・) この際、通常リンクとした場合にファイル名変更時に値参照できな くなってしまいます。これを回避するには、別名のフォルダへ同名 のまま一連を入れ区分する方法ありますが、ファイル名は同じまま なので未熟な使用者では同じファイル名ばかりあって混乱しかねな い懸念を持っています。そのため、関連するファイル名を使用者の 任意の名前とできるようにし、かつデータ参照するファイル側でセ ルにその任意のファイル名を入力指定し集約集計のためのデータ参 照を可能としたいと考えております。 自分で使うにはいかようにもなりますが、PCが苦手な人達に渡す 集計表のため、中身は複雑?ですが使用者には簡潔に感じるように 仕上げてやりたい気持ちで当案件模索しております。                            以 上

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXELでひとつのセルの値を任意の複数セルに振り分けたい

    投稿させて頂きます。 もし、なにかわかることや参考関数があればお教え願えばと思います。 ある任意のセルA1の数値(12345)を B1~5までのセルに振り分けたいと思います。 実行後のイメージはこんな感じです A1:12345 B1:1 B2:2 B3:3 B4:4 B5:5 ただし、数値のみ入力が前提ですが、たとえば0が入るような場合 A1が1234 だったばあい B5には何も入力せず空にしておきたいのです。 できるだけマクロは使いたくないので誰か、設定と関数などで出来るよ というような方がおられましたらご教授願えませんか? よろしくお願いいたします。

  • 同じ値のセルを見つける

    エクセルで、違う行列に入力してある、同じ値のセルを見つけたいのですが、何か方法はあるでしょうか。 例えばA1とB2セルが同じ値(X)と入っていたら、その2行を表示する等です。

  • セルに値をいれたら、いついれたか表示されるのVB

    すいません。質問です。 セルに値をいれたら、 その入力は、いつ入力したかの日付が表示されるのVBが知りたいです。 例としては A列に任意に数字を入れます。 そうすると、B列に日付が入ってほしいのです。 ↓↓↓↓↓↓↓↓↓↓↓    A    B    C 1 あお 1/12土 2 3 4 あか 1/15火 5 上記のように、A1に「あお」といれたらB1に「それを入力した日付」 上記のように、A4に「あか」といれたらB4に「それを入力した日付」 がいれたいです。(次にファイルを開いたときも、todayでなくその入力日の情報のままで) ここをみたら、 http://q.hatena.ne.jp/1184651644 できそうなんですが、 これ、A1とA2という単独のセルにに対してしかできなさそうで、 A列に対して、B列にずっと表示するには、どういうマクロをくめばよろしいのでしょうか? どうぞおしえてくださいませm(_ _)m

  • EXELで任意のセルのみ数式表示したい

    計算式の入ったワークシートで、ある特定のセルのみ計算値ではなく、 入力された式を表示したいのですが、できるのでしょうか? A1に+3+5と入力したら、A1の表示は+3+5で、 B1にA1*3と入力したら24となるようにしたいのです。 (A1はあくまでも数値で8という値を持ったまま、表示のみを式にしたい) lOTUSではセル表示を「式」にすれば簡単にできたのですが、Excelでのやり方がわかりません。 ・ツール→オプション→数式では、ワークシートすべてが式になってしまいます。 ・数式表示関数もあるようですが、それだと表示セルが別になってしまいます。

  • エクセルの関数で,たとえばB15のセルの値を返すには?

    エクセルの関数の質問です。 たとえば, A1のセルに7 A2のセルに8 が入力されているとします。 ここで,少し回りくどいのですが, A1(の7)と,A2(の8)と,関数などを使って, あるセルに,B15のセルの値を返したいのですが, 可能でしょうか? 間違ってますが, =B(A1+A2) のような式を書きたいのですが…。 あっさりと, =B15 とすればいいのはわかっていますが, やむえない事情がありまして…。 よろしくお願いします。

  • 2つのセルのどちらかに値が入れば

    2つのセルのどちらかに値が入れば いつもお世話になります。 WINDOWS XP EXCELL2003です。 現在はD5に =IF(A5="","",SUM(D4+B5-C5)) の数式が入っています。 ※あたりまえですがA5に入力されたときにD5に値が表示されます。 ご教示いただきたいのは、  B5 若しくは C5  のいずれかに値が入力されたら D5 に値が表示をしたい。 ご指導の程よろしく御願いします。

  • ある数値以上の値があるセルを取得したい

    エクセルの関数で、ある数値以上の値があるセルの位置を取得したいのです。 範囲B2:B11に任意の数値が入っているものとします。 その中で、仮に3以上の値が出現するセルの位置を取得する場合、どのような関数を用いればよろしいでしょうか? 数値をぴったり3に限定なら、=MATCH(3,B2:B11,0) で、範囲内で何番目にあるかわかりますが、3以上となると 補助列を用意し、=B2>3のような式を各セルに入れて、TRUEの位置を=MATCH(TRUE,A2:A11,0) で取得するくらいしか思いつきません。 ご教示ください。

  • エクセルのセルに「=A13」と表示されて、困っています。。。

    エクセルのセルに「=A13」と表示されて、困っています。。。 例:B13セルに、A13セルの値を表示させたい 1)B13セルで「=」とキーボード入力し、マウスでA13セルをクリック ↓ 2)するとB13セルに、値ではなく「=A13」と表示されてしまいます。 ↓ 3)最初は、通常通り「値」が表示されていたのですが、たくさん同じような処理をしているうちに、途中から「値」ではなく、「=セル名」が表示されるようになってしまいました。何度か作り直しても、同じような現象が発生しています。 どうか、どなたか良いアドバイスをお願いします。。。!!!

  • セルの値をファイル名として習得したい

    Excel2000でセルの値をファイル名として習得したい Excel2000でVBA SaveAsメッソドを使用しファイルを保存しようと考えております。 この際ファイル名をセルの値より取りたいと考えております。 どのようにすればよいかお教えください。 セルの値は関数CONCATENATEを使用しいくつかの文字を結合したものです。

  • excelで1つのセルに複数の値を返す方法はありますか?

    おせわになっております。 excelで質問です。 excel関数でもVBAでもいいのですが、1つのセルに複数の値を返す方法はありますでしょうか?? たとえばVLOOKUP関数だと1つのセルに1つしか返せませんよね?? a=りんご b=バナナ c=すいか d=いちご e=キウイ と設定したしたとして、 a,c,dと入力すると→りんご,すいか,いちご とすべて1つのセルに出るようにしたいのです。りんご,すいか,いちごという値にしたいので、それぞれを別々のセルに入れることはしたくありません。可能でしょうか?? よろしくお願いいたします。

専門家に質問してみよう