お世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日本語向きの“ダブルクオーテーション”の入力 1 2022/10/16 11:33
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報