人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelの質問です

1つのBookに、以下の名前の2つのシートを用意する
・Data
・FileList

シート:FileListには、A1のセルから下に向かって
A1:C:\data01.xls
B1:C:\data02.xls
C1:D:\data03.xls
という具合にファイル名のパスを記述する(ここで記述するファイル名のパスは、このBookを利用する毎に入れ替える)


シート:Dataには、A1のセルから下に向かって
A1: FileList!A1で指定したファイルパス(=C:\data01.xls)のSheet1のA1のセルの値
B1: FileList!B1で指定したファイルパス(=C:\data02.xls)のSheet1のA1のセルの値
C1: FileList!C1で指定したファイルパス(=C:\data03.xls)のSheet1のA1のセルの値
を埋め込みたい。


この場合、Data!A1やData!B1等に埋め込むセルの式はどのようにしたらよいでしょうか?


●質問者: wotti
●カテゴリ:コンピュータ
✍キーワード:A1 book Excel xls セル
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● airplant
●35ポイント

Excelの式だけでは、ブック名への外部参照をダイナミックに変えることはできません。→ と、思います。

つまり、[C:\data01.xls]Sheet1!$A$1のうち、[ファイル名]部分に参照の式が書けないということです。

●逃げ手

FileListに記載するファイルが少なく、参照セルも少ないのであれば、FileListシートに作らず、最初からDataシートにファイル名を書いて、それを修正すればいいと思います。

きっと私ならそうします。

FileList!A1に書くのも、Data!A1に書くのも同じことだからです。

参考: http://oshiete1.goo.ne.jp/qa425552.html


●マクロなら

ファイル数が多かったり、1個のファイルから複数セルを参照していて個別に書き換えができないときは、次のマクロで希望のことが実現できます。


1.Data!A1へ入れる式

=eval("[" & FileList!A1 & "]Sheet1!A1")

2個目も同様に書きます。FileList!B1の感じで。


2.マクロ

関数を書き、式の結果を受け取れるようにします。難点は、このように別シートに値があると、自動更新されない点です。同一シートなら自動更新されました。

そのために、RefreshCellsというマクロを載せておきました。

内容が変わったときは、Dataシートで適当な範囲選択して、RefreshCellsマクロを動かすと、セルが全部正しい内容に変わります。

Option Explicit

' (1)文字列を式とみなすようにするマクロ
Public Function Eval(eValStr As String) As Variant

 Eval = Evaluate(eValStr)

End Function

' (2)リフレッシュするマクロ
Public Sub RefreshCells()
 
 Dim P As Range
 
 For Each P In Selection
 SendKeys "{F2}", True
 SendKeys "{ENTER}", True
 Next P

End Sub

P.S.

>FileListには、A1のセルから下に向かって A1:C:\data01.xls B1:C:\data02.xls・・・

→ これは右に向かってますね。下ならA1,A2・・・ですね。


2 ● りくっち
●35ポイント

Excelで文字列を使用した参照をする場合「INDIRECT関数」というものがあります。

これは参照元のブックが開かれていないとエラーになってしまいますが、

逆に参照元のブックの名称に重複がなく、全てを開けておく事が可能なら、

FailListにはパスでなく、ブック名のみを記入し、

Dateシートには

A1=INDIRECT("["&FailList!A1&"]Sheet1!A1")

の数式で参照することが出来ます。

http://office.microsoft.com/ja-jp/excel/HP052091391041.aspx


以上ご参考まで。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ