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と関連する良く見られている質問

Q復元ポイントの作成とイメージファイル等のバックアップとの違いについて

今晩は、宜しくお願いします。

復元ポイントの作成とイメージファイル等のバックアップとの違いについて教えて下さい。

Windowsで復元ポイントからシステムを復元させる方法があり、
また、イメージファイル等にバックアップをとり、復元させる方法もありますが
この両者はどのように違うのでしょうか。

復元ポイントの作成とは、その時点のシステムの設定等だけを保存しているという
ことでしょうか。

また、イメージファイル等のバックアップを作成するということは
システム設定と作成したファイル等もイメージファイルとして一括してバックアップ
されるのでしょうか。

イメージファイルの復元時に、作成したファイル等もイメージファイルから
復元されるのなら、同じ名前のファイルがあった場合には、
イメージファイル作成時の古い情報のファイルになってしまうのでしょうか。

以上、宜しくお願いします。

Aベストアンサー

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。修復されるのは、選択した項目により異なる。
WindowsREを利用。
https://msdn.microsoft.com/ja-jp/library/hh825173.aspx

【バックアップと復元】
システムのバックアップを作成し、ハードディスクなどが壊れた場合に備えパソコン内部のデータを全てバックアップ・復元出来る。
Windowsのインストールディスクや、システム修復ディスクから復元が可能。
システムもユーザーデータもバックアップを取った時点の状態に戻る。

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。...続きを読む

QExcelのINDIRECT関数について

Excelで下記の関数を入れてみたのですがエラーとなってしまいます。

=MIN(((("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6))))))

最終的にMinの計算をする段階で中身が文字列になっていることが原因のようなのですが

=MIN(indirect(((("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6)))))))
としても結果は変わらずでした

エラーを回避して計算を成立させるにはどうすればよいでしょうか?

Aベストアンサー

INDIRECT関数を同じ式内で二重に参照するような場合は#REFエラーが表示されます(ファイルを開いていない場合と同じ状態になるわけです)。

このようなケースでは、以下のようなINDEX関数やOFFSET関数で対応するのが一般的です。

=MIN(INDEX(Sheet2!$J:$J,$A6):INDEX(Sheet2!$J:$J,$A6+INDEX(Sheet2!$M:$M,$A6)))

Q救出ファイル復元 2の機能について

「救出ファイル復元 2」で画像ファイルJPEGの他にRAWファイル、拡張子(CR2)を復元出来るでしょうか。

キャノンの一眼デジカメを使っているのですが、他の復元ソフトでは、復元出来ませんでした。

Aベストアンサー

Vectorあたりで『ディスク・ファイル復旧』の項目で探せばみつかりそうですが。
要は,"復元ソフトで復元できるファイルがソフトに登録されている拡張子だけしかできない"ことですので,拡張子を選択できる復元ソフトを捜せばいいと思われます。

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/disk/care/

QEXCELでセル参照の際に、参照元セルの色を参照先セルの色を反映させたい。

はじめて質問します。宜しくお願いします。
現在の手書き伝票をEXCELで再現・作成したいと考えております。
手書き伝票は、複写式で合計4枚になります。
経費削減のため、SHEET1の1枚入力欄に記入すると、
SHEET2に入力内容が反映され、印刷ではA3用紙1枚が出力され、
印刷したものをカッターで4分割して4枚として使用したいです。

現在は、会社名や住所、電話番号の変更があった際は、伝票横の余白に「⚪︎⚪︎変更あり」と
かいておりますが、文字が見にくくなったり、見落としたりする可能性があります。
EXCELでは変更のあったセルをわかりやすくしたいのです。
ただし、カラーは使用せず、白黒のみとしたいので、
「太字・斜体・変更したセルを薄いグレーの網かけにする」を考えています。

しかし、セルの参照では、参照元セルの文字だけが参照先セルに入力され、
参照元の書式が反映されなくて困っています。

そこで、皆様のお知恵をお借りしたいのですが、
EXCELのVBAはわかりませんので、できるだけ簡単なものでできると助かります。
VBAが必要でしたら、勉強しますので、できるだけわかりやすくお願いします。

最後に、上記のような伝票を作成する上での注意点などがありましたら、
あわせてアドバイス頂けますと大変嬉しいです。

何卒、宜しくお願いいたします。

はじめて質問します。宜しくお願いします。
現在の手書き伝票をEXCELで再現・作成したいと考えております。
手書き伝票は、複写式で合計4枚になります。
経費削減のため、SHEET1の1枚入力欄に記入すると、
SHEET2に入力内容が反映され、印刷ではA3用紙1枚が出力され、
印刷したものをカッターで4分割して4枚として使用したいです。

現在は、会社名や住所、電話番号の変更があった際は、伝票横の余白に「⚪︎⚪︎変更あり」と
かいておりますが、文字が見にくくなったり、見落としたりする可能性があり...続きを読む

Aベストアンサー

一案です。
一枚分の入力の作業が終わったら
一枚部分の範囲を選択、コピー
A3全体を選択
張り付け、形式を選択して貼り付け
書式にチェックを入れて OK

これで良ければマクロの記録で
VBA化してみてください。

Q削除した画像ファイルの取り出しまたは復元方法

ごみ箱に入れてから削除したファイルの復元方法を教えてください。

以前にも同様の質問をしたのですが、その際に教えていただいた方法で確かにいくつかのファイルは復元することができました。

しかし、一番復元したい画像ファイル(jpeg形式)が復元できません、同時期に同じく削除したファイルは無事に取り出せたのですが肝心のファイルは取り出せません。指定するファイル名、フォルダ名などの間違いはないのですが何が原因で復元できないのか理解できません。

良きアドバイスをいただければ助かります。
宜しくお願いいたします。

Aベストアンサー

こういったファイル復元ソフトを利用してファイルを復活させます。

●FileRecovery(フリーウェア)

消去・欠損したファイルを復元するソフト。
http://www.pcinspector.de/download.htm

●復元(フリーウェア)
http://www.vector.co.jp/soft/win95/util/se192983.html

■FINALDATA(ファイナルデータ)フォトリカバリー3.0(有料)
http://www.finaldata.ne.jp/f_8_3.html

当然ながら復元できる確立は有料ソフトのほうが高いです。

これらを使っても復元できない場合はファイルが上書きされて完全に消えている可能性が高いです。

Qエクセル(excel)での分数関数を使った計算方法

例えばy=a*1/x+bのように、1/xを表示させてyの値を計算させる方法はありますでしょうか?
セルにy=x^-1やy=x^(-1)と入力しても、NAMEエラーがでてしまいます。
宜しく御願い致します。

Aベストアンサー

セルに直接にYやXを入力しているのではないでしょうね。それでは計算してくれません。
例えばy=a*1/x+bを求める場合です。
A1セルにaの値を、B1セルにXの値、C1セルにbの値をそれぞれ入力して、D1セルにYの値を表示させるのでしたらYのセルには次の式を入力すればよいでしょう。

=A1*1/B1+C1

Q「ウイルス感染ファイル」削除後のシステム復元でどうなる?

ウイルスバスターで幾つかのウイルス感染ファイル発見し全て削除しましたが、感染したファイルはシステムファイルでしたので少し心配でしたが削除しました。
そこで教えて頂きたいのですが、感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?

Aベストアンサー

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライブにOSのインストールディスクを入れておく。
2.「スタート」「コマンドプロンプト」または「ファイル名を指定して実行」で
「sfc /scannow」と入力して「OK」

「Windows XP professional のディスクを入れてください」という表示が出ることがありますがHome Editionであれば「無視」を選んでスキップしてください

>感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?
出来ないことはないでしょうが、あまりお勧めできません。
現在の状態が正常でない。
過去の状態の方が快適に操作できる。
という場合、それがいいかもしれません。
しかし、Windowsの設定というのは非常に広範囲にわたっており、現在と過去を比較して、どちらが適正かを判断するのは容易ではありません。
また、過去の復元ポイントの中には不正な設定が含まれている場合があり、間違って、そのポイントを選択することもあります。
ウィルス対策ソフトのサイトでは一旦復元設定を無効にして、過去の復元ポイントを全て消去することを推奨しています。

>一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?
間違った操作をすると汚染されたファイルが復元されてしまいます。
一旦復元設定を無効にして、過去の復元ポイントを全て消去することで汚染されたファイルは二度と復元しません。

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライ...続きを読む

QExcelで、他のExcelファイルからデータ抽出

はじめまして。

タイトル通り、Excelのマクロで、他のExcelファイルのデータを抽出するマクロを作っています。
http://oshiete.goo.ne.jp/qa/3681193.html
上記ベストアンサーQ&Aを参考にして、他のExcelファイルからデータを持ってくるマクロを作ることは出来たのですが

・パスワードのかかったファイルから抽出する際は、パスワードの入力を省きたい(パスワードは全て同一)。
・シート名は月日表示(0129など)になっており、何月何日から何月何日までのデータを持ってくるか指定出来るようにしたい。
・抽出先のセルに何もデータがないときは何もデータを返さないようにしたい(現状は"0"が返ってきます)。

上記3点が上手く出来ず、詰まっている状態です。
何かいい方法があれば、ご教授願いたく質問をさせていただきました。
よろしくお願いいたします。

Aベストアンサー

Sub Sample1()
 Dim o As Object
 Dim w As Workbook
 Dim d1 As Date, d2 As Date
 Dim d, n

 Do
 d1 = Application.InputBox("start date", Type:=1)
 If d1 = 0 Then Exit Sub
 Loop Until IsDate(d1)

 Do
 d2 = Application.InputBox("end date", Type:=1)
 If d2 = 0 Then Exit Sub 
 Loop Until IsDate(d2)

 On Error Resume Next
 n = 0
 Set o = CreateObject("Excel.Application")
 Set w = o.Workbooks.Open(Filename:="c:\test\book1.xls", Password:=1)

 For d = d1 To d2
 ThisWorkbook.Worksheets("Sheet1").Range("A1").Offset(n).Value = w.Worksheets(Format(d, "mmdd")).Range("A1").Value
 n = n + 1
 Next d

 w.Close False
 Set o = Nothing

End Sub

Sub Sample1()
 Dim o As Object
 Dim w As Workbook
 Dim d1 As Date, d2 As Date
 Dim d, n

 Do
 d1 = Application.InputBox("start date", Type:=1)
 If d1 = 0 Then Exit Sub
 Loop Until IsDate(d1)

 Do
 d2 = Application.InputBox("end date", Type:=1)
 If d2 = 0 Then Exit Sub 
 Loop Until IsDate(d2)

 On Error Resume Next
 n = 0
 Set o = CreateObject("Excel.Application")
 Set w = o.Workbooks.Open(Filename:="c:\test\book1.xls", Password:=1)

 For d = d1 To d2
 Th...続きを読む

Q復元ソフトのふと感じた疑問 -ファイル名を削除したい-

先日、復元ソフトを使用していたときに感じたことなのですが
(使用ソフトは「復元」です。)
ファイルを復元する際の手順で削除したファイルが検索できますよね。
このファイル検索の時に、HITしないようにファイル名を完全に削除したい場合はどのようにすればいいのでしょうか??

例えば、「●●との秘密旅行001.jpg」のファイルを削除したとします。
その後、復元ソフトで検索をかけるとファイルを復元しなくてもファイル名を見ただけで怪しいファイルとわかってしまいますよね。
復元ソフトの検索で、表示されなくする方法か、別名に変える方法があるのなら教えてください。

Aベストアンサー

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名前を消去したいファイルをクリックするか、名前を消去したい複数ファイルを左クリックしながら選択する→[消去]ボタンをクリック→[OK]をクリック

これで、名前を消せます。しかしながら完璧ではなくて、一部消せないこともあります。
(「DataRecovery」を再起動してもう一度ドライブをスキャンすると消せなかったファイルが表示されます)

参考URL:http://www.vector.co.jp/soft/win95/util/se382922.html

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名...続きを読む

Qエクセル2003で、フィルハンドルの連続データを使うと、1,2,3,4

エクセル2003で、フィルハンドルの連続データを使うと、1,2,3,4,5,6・・・
という数列になりますが、これを1,3,5,7,9・・・といったように、公差が2以上の数列
で連続させたい場合はどう設定すればよいのでしょうか?

Aベストアンサー

A1に1、A2に3と入力して
A1からA2を範囲指定してフィルハンドルの連続データを使うと
できます。


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

人気Q&Aランキング

おすすめ情報