お世話になります。
Excelにて外部のExcelファイルのデータを参照する方法を教えていただけませんでしょうか。
具体的には、
1.Excelファイルa.xls b.xls c.xls・・・ があります。
2.a.xlsの a1 に b.xls の a1 の値を入力し、続けて
a.xls の a2 に c.xls のa1・・・を繰り返していきます。上手く説明できないので、下を参照願います。
------------------------------------------------
<a.xls>
|a |b |c
-+-------
1|a1|b1|c1 ←b.xls ないのa1-c1のデータ
2|a1|b1|c1 ←c.xls ないのa1-c1のデータ
3|a1|b1|c1 ←d.xls ないのa1-c1のデータ
------------------------------------------------
上記を数百のファイル分行いたいのですが、外部ファイルを開いて該当のセルをコピーしていると非常に時間がかかります(といいますか無理でしょう)そこで、これらを数式から指定して、セルにコピーする事により、作業を効率化したいというわけです。
そのような方法がございましたら、教えていただけませんでしょうか。
よろしくお願い致します。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
VBA以外のご解答を良く理解できていませんが
[Book1.xls]Sheet1!A1のBookの1とかSheet1の1の部分
は複写した時、相対的に変化してくれません。(当たり前と思っておられる方も多いでしょうが)。
それで複数ブックや複数シート参照型の本問などは算術式
(関数式)ではやりにくいですね。
Workbooks(n)(n=1-4とか)(worksheets(m)のmは1だけとして)で表せるようにして、簡単化できないかと思いました。テスト未。
dim s(5)
s1=1:s(2)=1:s(3)=1:s(4)=1
p01:
For j=2 to 4
For i=1 to 3
Cells(s1,i)=WorkBooks(j).Workshees(1).Cells(s(j),i)
Next i
s1=s1+1
Next j
s(j)=s(j)+1
goto p01
No.5
- 回答日時:
算式だけでもできますが、説明が長くなりそうなのと数百のファイルということで、マクロにしてみます。
a.xls のSheet1のE列、F列に、参照するブックの、ドライブフォルダ名とBook名を登録します。
E列がドライブフォルダ名
F列がBook名です。
A B C D E F
1 C:\My Documents\・・・\・・・ test_Book1.xls
2 C:\My Documents\・・・\・・・ test_Book2.xls
3 C:\My Documents\・・・\・・・ test_Book3.xls
: :
N C:\My Documents\・・・\・・・ test_BookN.xls
ファイル名の一覧は書き出しできるものとしています。
他Bookの対象シートは、Sheet1としています。
a.xls のSheet1のVBEのコードウインドウに下記マクロを貼り付けます。
(ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。
プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。)
マクロを実行すると、a.xls のSheet1のA、B、C列に参照結果を書き出します。ご参考に。(当方、Excel97です)
Sub TEST()
Dim myFormula As String '他Bookの参照式
Dim rw As Long '行カウンタ
'E列にドライブとフォルダ、F列にBook名があると想定!
For rw = 1 To Range("E65536").End(xlUp).Row
myFormula = "'" & Cells(rw, 5) & "\[" & Cells(rw, 6) & "]Sheet1'!"
Cells(rw, 1).Formula = "=" & myFormula & "A1"
Cells(rw, 2).Formula = "=" & myFormula & "B1"
Cells(rw, 3).Formula = "=" & myFormula & "C1"
Next
End Sub
No.3
- 回答日時:
#2です。
> 次に、b.xlsファイルでセルA1の内容を見てみましょう。
ごめんなさい、あわてました。(^^;)
これは 「a.xlsファイルでセルA1の内容を見てみましょう。」の誤りです。
あと、この方法だと、b.xlsの内容を変えると、a.xlsの内容も変わっちゃいます。
値だけ参照したい場合は、いったん、#2の作業を行った後、シート全体をコピーし、別のシートに、形式を選択して貼り付け-値を選択、で貼り付けます。
最後に、最初のシートをシート毎削除してください。
No.2
- 回答日時:
・b.xlsファイルでセルA1をコピー
・a.xlsファイルを開き、編集-形式を選択して貼り付け を選択
・リンク貼り付けをクリック
まずここまでしてみてください。
次に、b.xlsファイルでセルA1の内容を見てみましょう。
数式バーに
=[a.xls]Sheet1!$A$1
って出てませんか?
[ ] 内がファイル名
Sheet1 の部分がシート名
$A$1 がセルですね。($は絶対参照の記号です)
ご質問内容の場合、
A列のみ上記を繰り返して元を作り、(直接、上記のように入力してもOK)
$A$1 となっている部分の先頭の$を削除します。(つまり、A$1にするということ)
=[a.xls]Sheet1!A$1
となったら、あとはこれを必要な列数分コピーすればOKです。
ただし、a.xls,b.xls,c.xls,…が、同じフォルダ内にあることが必要です。
別のフォルダにある場合は、[ ]内のファイル名にフルパスを記入する必要があります。
※フルパスを記入というのは
C:\Documents and Settings\Administrator\My Documents\a.xls
みたいに書くことです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでASCを使って全角を半角...
-
作成した数式を値として表示し...
-
Excel関数について教えてくださ...
-
Excel関数について教えてくださ...
-
条件付き書式設定で罫線を引き...
-
エクセルのセル内に分数などの...
-
エクセルの質問です。 F列からL...
-
Microsoft 365Excelの見開きペ...
-
ワークシートに出現したこの画...
-
エクセルの文字が途中から消える
-
Excelの警告について
-
タイムスタンプとテキストから...
-
シートの情報を別のシートへま...
-
マクロの処理が遅くなった
-
エクセルの数式バーのフォント...
-
Excelでの文字色
-
エクセルデーターから必要な項...
-
Excelの数字の前に入っている空...
-
excel2003 マクロボタンが押せない
-
エクセルでファイルの最終更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報