INDIRECTの関数を使って,他のエクセルファイル(以下Bファイル)を参照すると,
Bファイルを開いているときは正しく数値を表示しますが,
Bファイルを閉じるとエラー表示になります。

回避する方法は無いでしょうか?

(元ファイルと,Bファイルの両方から参照先に関する情報を得ているので,INDIRECT関数は,必須かと思っています)

参考までに3種類試したソースを示します。
できれば3は避けたいと考えています。
ご意見よろしくお願いします。


1:=INDIRECT("'[★★★Bファイル.xlsx]"&$A27&"'!o$7")
エラー表示になります。

2:=INDIRECT("'"&MID(CELL("filename",$A$1),1,FIND("[",CELL("filename",$A$1))-1)&"[★★★Bファイル.xlsx]"&$A26&"'!o$7")
エラー表示になります。(パスまで含めて参照)

3:='C:\Users\test\[★★★Bファイル.xlsx]213旅費'!O$7
正常(常に数値を表示します)

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>回避する方法は無いでしょうか?


INDIRECT関数を使っている限り、回避できません。

外部データの取り込み機能で一時的にデータをすべて持ってくれば、同一ブック内になるので参照できます。
(閉じるときに取り込んだデータを破棄できます)
手間が状況に左右されるので、マクロで3のようにしてしまう方が簡単かもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。
3の方法で実施します。

またよろしくお願いします。

お礼日時:2011/12/14 11:01

>回避する方法は無いでしょうか?


 ⇒ヘルプにも記載している通り、INDIRECT関数を利用での他ブック参照は
  参照先ブックが閉じられている限り、不可能です、
  唯一、3番の方法が可能になっています。

>元ファイルと,Bファイルの両方から参照先に関する情報を得ている・・
 ⇒ご質問者の問題点が不明、この辺りについてもう少し具体例などを補足しては
  如何でしょうか。    
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
INDIRECT関数を使っている限り無理ということがわかっただけでも,めっけもんです。

コピペで簡単に作成するために,
元ファイルの中に,Bファイルのシート名称を用意してあるということです。
(甚だ簡単な説明ですが・・・)

3の方法で実施します。

またよろしくお願いします

お礼日時:2011/12/14 11:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qxlsxファイルが開きません

「2007 offi system 互換機能パック」をインストールしましたが、以下のメッセージが出て、xlsxファイルが開きません。対処方法を教えてください。

使い方:
/extract:path このパッケージの内容をこのパスフォルダに解凍します。
/log[ログファイルのパス], インストール時の詳細なログを記録します。
/lang:lcid, パッケージに複数のロケールが可能な場合、ユーザーインターフェースを特定のロケールに設定します。
/quiet このパッケージをサイレントモードで実行します。
/? このヘルプメッセージを表示します。
/passive, ユーザーの操作なしに更新を実行します。
/norestart, 再起動する必要がある場合、ユーザーの確認を表示しないようにします。
/forcerestart, 更新が完了次第、強制的に再起動します。

上記メッセージについては、当方には何を言っているのかがわかりませんし、対処操作方法もわかりません。よろしくご教示ください。当方は、office2000です。

Aベストアンサー

回答No.4です。

インストールできているにもかかわらず不具合が出るというケースはあるようなんですが、そういう使い方のオプションが出るのではなくて、もっと普通に「ファイルを開くことができません」とか「変換できません」というメッセージが出るようです。なのであまり例がない事象に出くわしてしまったようですね。

そうは言っても珍しがってるだけでは話が進みませんから、漁ってみたらどうやら互換機能パックのサービスパックなるものを発見しました。これを当ててみるのはどうでしょうか。

http://goo.gl/iHtVEF

それでもうまくいかない場合は、最後の手段としてフリーの互換Officeに登場願うしかないと思います。以下は私も使っています。と言ってもメインで使っているわけではありませんが、トラブル対策に欠かせません。2007以降のExcelでxls形式のファイルを編集していると、ファイルが無駄にでかくなったり、急に開けなくなったりすることがあるんですが、なぜかそのようなファイルもLibreOfficeでは正常に開けるし、別名保存すると大きさが元に戻って純正Excelでも開けるようになるという。Wordでも同じ現象がありますが、これも同じ方法で直ります。

https://ja.libreoffice.org/

回答No.4です。

インストールできているにもかかわらず不具合が出るというケースはあるようなんですが、そういう使い方のオプションが出るのではなくて、もっと普通に「ファイルを開くことができません」とか「変換できません」というメッセージが出るようです。なのであまり例がない事象に出くわしてしまったようですね。

そうは言っても珍しがってるだけでは話が進みませんから、漁ってみたらどうやら互換機能パックのサービスパックなるものを発見しました。これを当ててみるのはどうでしょうか。

http://go...続きを読む

Q=INDIRECT関数について

シート”一覧” から文字を持ってきています。
4行目まで1行毎タイトル等で
5行・6行をセルの結合して見出しつけてます。
7・8行からセルの結合して 連番1からつけています。

=INDIRECT("一覧!C" & 5 +A5*2)

先任者が作っていた上の式の内容がよくわかりません。教えてください。
この式のところには 7・8行結合のC欄の内容が表示されます。

& 5 +A5*2 の 解説よろしくお願いします。

※OKWaveより補足:「富士通FMV」についての質問です。

Aベストアンサー

No.1です。
たびたびごめんなさい。

一番大事なコトを書き忘れました。
>& 5 +A5*2 の 解説よろしくお願いします。

は前回回答した通りですが、なぜ2倍か?
となれば質問文にあるように、2行ずつセルが結合されているというコトですので、
結合セルのセル番地は最初のセル番地となります。
そのために2倍しているものと思われます。

>5行・6行をセルの結合して見出しつけてます。
というコトですので
必ず7行目以降の奇数行を返すための式ですね。
(偶数行を指定すると「0」が返ると思います。)m(_ _)m

QXLSXファイルを開く為互換機能パックをインストールしたが表示されない

同じような内容の質問等みましたが合っている解決方法が見つからなかったので
質問します。

Microsoft Office Excel 2003を使ってます。
XLSXを開く為に互換機能パックをインストールしましたが自動でアイコンが変わったりすることは
なく、Excel 2003で強引に開くと文字化けしています。
再起動や保存の仕方、互換機能パックのインストールの仕方などいろいろ変えてやってみましたが
表示されません。
システムには(プログラムには)2007Office system 互換機能パック と表示されています。

エクセルのツール→オプション→全体→ほかのアプリケーションを無視するにはチェックは
入ってないです。

とっても困ってます。回答お願いします。

Aベストアンサー

こちらでは直っている例もあるようです。
http://nazunaya.blog8.fc2.com/blog-entry-115.html

QMS Office 2007,2010,2013で作成したPDFのバージョンを教えてください。

質問1、
MS Office 2007,2010,2013で作成したPDFのバージョンをそれぞれ教えてください。
また、バージョンを選択して変換することはできますか?

質問2、
変換の時に規格(x-1a~x-4等)を選ぶことは出来ますか?
出来るときはその手順(メニュー)も教えてください。

よろしくお願いします。

Aベストアンサー

MSDN(まいくろそふとでべろっぱーずねっとわーく)の文書をお読みください。
http://blogs.msdn.com/b/officeinteroperability/archive/2013/04/04/microsoft-support-for-pdf.aspx

QOutlook2010,2つの予定表を1つにしたい

Outlook2010において,2つのアカウント(?)の予定表だけを一つにしたいのですが,設定方法をお教えください。
(メールは別々のアカウントのフォルダに,それぞれ保管されています)

Aベストアンサー

>インターネット環境のないところで,外付けHDD内にある「2つのアカウント(?)の予定表」を一つにして見たいのですが。
それでしたら、外部媒体(USBメモリ等)に、それぞれのPCの予定表をコピーor移動して使う方法になりますね。
OUTLOOKのデータ(メール、予定表、連絡先)は個人用フォルダファイル (.pst)に保存されてます。

まず、 [ファイル][新規作成]から[OUTLOOKデータ ファイル]をクリック

デフォルトで[個人用フォルダ(1)]という名前になるので、[予定表]など分かりやすい名称に変更して
保存場所を、外部媒体(USBメモリ等)にして保存してください。
※既存の保存場所は、[C:\Users\アカウント名\AppData\Local\Microsoft\Outlook]です。

予定表を開いて、[表示][現在のビュー]を[全ての予定]か[OUTLOOKデータファイル]にしてください。
記載されている全ての予定が表示されるのでで選択して、右クリックから[フォルダの移動]で
外部媒体(USBメモリ等)を指定してください。

この外部媒体(USBメモリ等)を、もう一つのPCに接続して、 [ファイル][開く]から[OUTLOOKデータ ファイル]をクリック
外部媒体(USBメモリ等)上の[予定表.pst]を選択

もう一つの予定表の内容も、同様にフォルダの移動で外部媒体(USBメモリ等)上の[予定表.pst]に移してください。

あとは、外部媒体(USBメモリ等)上の[予定表.pst]を使うようにすれば一つのものとして使えます。
※外部媒体(USBメモリ等)を紛失したり、持ってくるのを忘れると使えなくなるので注意が必要です。
※定期的にPCのハードディスクにバックアップを取っておいた方がいいでしょう。

>インターネット環境のないところで,外付けHDD内にある「2つのアカウント(?)の予定表」を一つにして見たいのですが。
それでしたら、外部媒体(USBメモリ等)に、それぞれのPCの予定表をコピーor移動して使う方法になりますね。
OUTLOOKのデータ(メール、予定表、連絡先)は個人用フォルダファイル (.pst)に保存されてます。

まず、 [ファイル][新規作成]から[OUTLOOKデータ ファイル]をクリック

デフォルトで[個人用フォルダ(1)]という名前になるので、[予定表]など分かりやすい名称に変更して
保存場所を...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報