質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

1912閲覧

VLOOKUPの別ブックを参照する。

zidaraku

総合スコア1

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2020/07/30 03:18

編集2020/07/30 04:19

VLOOKUPで別ブックを参照する。

目的
「加工ブック.xlsm」で「参照ブック.xlsx」を参照する。

加工ブックにこのように入力しました。

A2:J101 =VLOOKUP(ROW()-1,[参照ブック.xlsx]Sheet1!$A$2:$J$101,COLUMN(),0)

両方のブックを開いた状態で、参照することは出来ました。
そして、参照シートを閉じると、
=VLOOKUP(ROW()-1,フルパスの[参照ブック.xlsx]Sheet1!$A$2:$J$101,COLUMN(),0)
と出ます。

その状態では「参照ブック」を参照してくれず、再度「加工ブック」だけ開きなおした時には、「更新してください」→
「参照ブック」を参照した全てのVLOOKUP関数は#N/Aエラーを吐きます。
また、両ブックが開いた状態なら機能します。

あらゆるサイトには「閉じた状態」でも問題なく動くらしいのですが、不思議と動かないので質問しました。
ご回答宜しくお願いします。

※追記
「シート」じゃなくて、「ブック」だから違うというご指摘を受けました。
失礼しました。別ブックの書き間違えです。よろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tosi

2020/07/30 04:36

>あらゆるサイトには「閉じた状態」でも問題なく動くらしい・・・ 初めて聞きました。閉じたBookに対してVLOOKUPしても駄目と思っていました。
tosi

2020/07/30 06:09 編集

https://bsj-k.com/excel-external-references/には確かに >更新するブックさえ開いておけば、参照される側のブックは >閉じたままでも構いません。 と記載あります。 ただ、私の認識と経験では閉じた状態では動かないと思っています。
guest

回答2

0

test1.xlsxとtest2.xlsmでテストしてみました。

test2.xlsmにVLOOKUPを記述してみましたが、
test1.xlsxが閉じた状態でも問題なく参照できました。
※リンクを更新してもしなくてもOKでした

Microsoft Office Professional Plus 2016を使っています。

環境要因もあるかもしれないので、
シンプルな状況でテストされるのも良いかもしれません。
参考まで

投稿2020/07/31 01:45

radames1000

総合スコア1923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

別シートといいつつ。別Bookですので正常な挙動のような気もします。

投稿2020/07/30 03:47

mako1972

総合スコア383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zidaraku

2020/07/30 04:25

誤字です。「別book」に修正しました。
mako1972

2020/07/30 04:45 編集

処理上のお話ですので、誤字とかは気にしていません。 この辺は、エクセル関数で別bookとのリンクで確認メッセージが出たりでなったりとするので 経験上、個人的にはあまりお勧めしません(配布して使うならなおさら信頼性に欠けるような・)。 最近のエクセルですと開いただけでメッセージがでることが多いですよね。 更新を有効しますか?でしたっけ(この変適当ですみません)? エクセル関数の質問だと思いますので、この辺にしたいと思います。 (業務でしたら、VBAを使うなどしてこの変のエラーを回避したほうがいいという意見です) 閉じた状態とうのは、閉じているようにみえる状態という意味だと思います。 加工ブック.xlsmとしている時点で、マクロですね。。。 マクロ使うなら・・・・。
tosi

2020/07/30 04:36 編集

ミス消します
zidaraku

2020/07/30 04:59

純粋になんで出来ないか?を気になってただけなので、マクロにしました。(笑) Sub マスターデータ取込01() '選択したファイルを取り込み、別のファイルに貼り付ける。 Dim RC As Integer Dim OpenFileName, fileName, Path, SetFile As String Dim wbMoto, wbSaki As Workbook Set wbMoto = ActiveWorkbook 'マスターデータ取り込み元をセット Application.DisplayAlerts = False RC = MsgBox("マスターデータ取込みますか?", vbYesNo + vbQuestion, "確認") If RC = vbYes Then OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") 'ダイアログボックスを表示して、マスターデータファイルを指定します。 If OpenFileName <> "False" Then SetFile = OpenFileName Else MsgBox "キャンセルされました" Exit Sub 'マスターデータの取り込みをキャンセル End If Workbooks.Open fileName:=SetFile, ReadOnly:=True, UpdateLinks:=0 'ダイアログボックスで指定したマスターデータファイルを開きます。 Set wbSaki = Workbooks.Open(Path & SetFile) 'ワークブック間のシ―トの全てをコピー wbSaki.Worksheets("sheet1").Range("A1:k1001").Copy wbMoto.Worksheets("sheet1").Range("A1").PasteSpecial xlPasteFormulasAndNumberFormats Application.CutCopyMode = False 'コピー切り取りを解除 wbSaki.Close False 'マスターデータ取り込み先のファイルを閉じる Else MsgBox "処理を中断します" End If Application.DisplayAlerts = True End Sub
zidaraku

2020/07/30 05:00

皆さまありがとうございました。
mako1972

2020/07/30 05:08 編集

VBAのコード素晴らしいですね わたしにポイントがついてしまっています。 申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問