[[20200131052103]] 『閉じているブックのリンク張り付け』(doublet) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『閉じているブックのリンク張り付け』(doublet)

閉じているAフォルダー内のBフォルダー内のCファイルのF2セルのデータを、開いているブックDのE10に張り付けるVBAはできますか?

< 使用 Excel:Office365、使用 OS:Windows10 >


試せば容易にわかるとおもいますが、フォルダパス、ブック名、シート名、セルアドレスのすべての辻褄が合うようなものを書き込めばいいので、可能不可能で言えば可能ですね。

(もこな2 ) 2020/01/31(金) 07:36


そこまで細かく書いて、シート名は書いてないとは…。 試していませんが、こんな感じですかねぇ?
 Sub test()
    Workbooks("ブックD").Sheets(1).Range("E10") = Application.ExecuteExcel4Macro("'c:\Aフォルダー\Bフォルダー\[Cファイル]Sheet1'!F2")
 End Sub
(???) 2020/01/31(金) 09:38

失礼しました。シート名抜けていて申し訳ありません。
参照先のシート名は度々変わるのですが、2020.01.24とか、年数.月.日といった型となります。
[Cファイル]の拡張子は必要でしょうか?不必要でしょうか?

(doublet) 2020/02/01(土) 04:58


目的は、リンク貼り付けですか

(マナ) 2020/02/01(土) 08:24


タイトルにあるように、リンク貼り付けだったら
 =〜〜〜Aフォルダ\Bフォルダ\[Cファイル.xlsx]2020.01.24'!$F$2

みたいなのを書き込むマクロにすればいいだろうし、

>E10に張り付ける
みたいに、値そのものを持ってくるなら???さんの回答で対応できるとおもいますが、どちらでも対応できなかったのでしょうか?

>[Cファイル]の拡張子は必要でしょうか?不必要でしょうか?
前者であれば、手作業で目的のセルを参照した後に、「Cファイル.xlsx」を閉じれば、何と書き込むべきかは調べられると思います。

後者であれば↓が参考になると思います。
https://www.moug.net/tech/exvba/0060037.html

(もこな2 ) 2020/02/01(土) 08:47


値そのものを持ってくる場合は、R1C1形式を使わないとダメのように思います。

その点はありますが、
>手作業で目的のセルを参照した後に、
>「Cファイル.xlsx」を閉じれば、何と書き込むべきかは調べられると思います。
が質問者さんにとって重要なポイントでしょう。
参照スタイルをR1C1形式にしておけば、まったく同じ文字列です。
(γ) 2020/02/01(土) 09:49


 こんにちは!

 数式バーにアドレスを入力して普通に確定するとそのBookがあれば取得出来ます。

 これをコードにすると、、↓みたいな感じになります。

 アドレスが固有なので試していませんけど、、、(^^;

 Workbooks("ブックD").Sheets(1).Range("E10").Formula = ='C:\Aフォルダ\Bフォルダ\[Cファイル.xlsx]2020.01.24'!$F$2

 すみません。大幅に修正しました。
 でもこれだと普通に数式を入力するのと変わりませんね(^^;
 2020/02/03 23:03
 (SoulMan) 2020/02/01(土) 14:23

 おはようございます。

 リアクションがないけど、、続きです。(^^;

 数式バーにアドレスを入力すればいいので例えば関数を一つ作っておいて

 Option Explicit
 Sub hh()
 Range("B1").Formula = "=kk('Y:\サンプル\[連番の付加.xlsm]Sheet1'!A1:C10)"
 End Sub

 Function kk(v As Variant)
 Debug.Print v(1, 1)
 End Function

 とすれば、、配列で取得出来ます。

 まぁ、、何かの足しにでもなれば幸いです。。。。

 では、、では、、
(SoulMan) 2020/02/02(日) 08:38

皆さま、せっかく回答いただいたのに、実はできてません。またずっと夜勤で回答できず申し訳ありません。
>「Cファイル.xlsx」を閉じれば、何と書き込むべきかは調べられると思います。
やってみたのですが、数式バーのものを直接コードに明記するならR1C1形式が妥当だと言うことで合ってますでしょうか?

できたのは、なぜかリンク先のパス名のみ表記され、表記されるべき値(日付)が表記されません。

もう一つは、soulmanさんがご指導いただいた最初のコードを試しましたが、R angeプロパティのFormura Arrayがなんちゃらと出た気がします。

今、パソコンを開いてなくこれからまた、返答できません。
ご迷惑おかけし大変申し訳ありません。
(doublet) 2020/02/02(日) 09:42


 二つのBookを開いておいて片方を参照する数式を入力します。

 数式バーに = (Shift+=)と入力して参照式を入力

 開いてる間は、ただの 数式ですが、、両方を閉じて数式を入力したBookをもう一度開きなおせば
 "='Y:\サンプル\[連番の付加.xlsm]Sheet1'!A1:C10"
 みたいなアドレスが取得出来ます。

 まぁ、、この辺の問題は、、普通にExcelを触っていればしょっちゅう出くわしますよね?
 他のBookを参照する数式とういうか、、他のBookのセルをクリックするだけですけどね(^^;

 あまり難しく考えないで一度試してみてください。。。
 出来れば、、なぁ〜〜んだっとなりますから。。。。

 >直接コードに明記するならR1C1形式が妥当だと言うことで合ってますでしょうか? 

 どうなんでしょうね??少なくとも私の方法では出来てますけどね(^^;

 では、、、では、、、
(SoulMan) 2020/02/02(日) 10:18

 すみません。うそを言いました。

 心配になっていまやったら、、

 誤り
 >開いてる間は、ただの 数式ですが、、両方を閉じて数式を入力したBookをもう一度開きなおせば

 正解
 開いてる間は、ただの 数式ですが、、参照したBookを閉じれば

 です。すみません。m(__)m
(SoulMan) 2020/02/02(日) 10:35

 >できたのは、なぜかリンク先のパス名のみ表記され、表記されるべき値(日付)が表記されません。

 この↑日付って↓のことでしょ?

 >参照先のシート名は度々変わるのですが、2020.01.24とか、年数.月.日といった型となります。 

 ということは実際に使われているシート名なんでしょ?

 >なぜかリンク先のパス名のみ表記され、

 まぁ、、いろんな方法があるのでしょうけど、、ちょっと理解に苦しみますね
(SoulMan) 2020/02/02(日) 10:46

>値そのものを持ってくる場合は、R1C1形式を使わないとダメのように思います。
という文章は、
Application.ExecuteExcel4Macro の引数として与えるものとしては、R1C1形式しか機能しません、
という意味です。参考サイトの紹介がありましたが、そこにも記されています。

なお、ふたつのBookを開いている場合、
参照先のセルを選択するだけでよく、
数式を入力する必要はないと思います。
自動的に数式がセットされますよね。
そして、参照先のブックを閉じても、フォルダ名などのパスが失われることがないことは
既に指摘いただいたとおりです。
 
で、質問に関するポイントは、
・リンクにどの程度の規則性があるのか、
・どれだけの数のリンクを設定するのかということです。
もし規則性がないような参照関係なら、
わざわざ対応関係をコーディングするよりも、
普通に開いて手作業でリンクさせたほうが、
上記のような簡便な操作方法が利用できて、効率はよいのではないですか?
多数のブックで同様のことがあるなら、それをマクロ記録して利用することも可能でしょう。
 
質問にあたっては、その辺の事情も書かれた方がよいでしょう。
閉じたまま何かをしたい、ということにそんなに魅力がありますか?
(γ) 2020/02/02(日) 11:01


 リンク先のブックが開いている場合は、数式にブックのパスは数式に表示されません。
 単純にブック名だけです。
 =[Book1.xls]Sheet1!$A$1

 参照先のブックを閉じると、
 ='C:\Users\user\Desktop\[Book1.xls]Sheet1'!$A$1
 となります。

 追加、
 リンク先の対象ブックが開いているのに、わざわざ数式にパスを追加すると別の物として扱われるので注意。(最近のエクセルでの挙動は不明)
(Jaka) 2020/02/02(日) 14:37

皆さまお手数おかけし申し訳ありません。
なぜか、どうしたらなったのかわかりませんができました。文字の入力が間違ってたかな?コピペしてやって何度も確認したんですが。
R1C1形式でできました。
リンク先のブックはとじなががらやっていましたが…。気づいたらお知らせします。
新たなコードや関数を提示していただいた方大変にありがとうございます。
(doublet) 2020/02/02(日) 15:14

 あ、なんだ数式のリンク先ウンヌンでなく、
 ExecuteExcel4Macro
 の問題だったのか、失礼しました。
(Jaka) 2020/02/02(日) 15:19

doubletさん、念のため。
 
リンク貼付なら、Application.ExecuteExcel4Macro では対応できません。
それは値を書き込むだけですから。
リンク貼付したいんでしょう?
  

(γ) 2020/02/02(日) 15:46


感想を敢えて書きます。

質問者さんは、回答者のコメントを読んでいるんですかねえ。
少しも相手に届かない。隔靴掻痒の感が強い。

リンク貼り付けと、値を書き込むことの区別ができているんですか?
>R1C1形式でできました。
リンク(計算式)は、形式を問いませんよ。
 
手作業で、リンクする作業から、再出発して欲しい。
そして、他人のコメントをしっかり読んで頂きたい。
できれば紙にプリントして、アンダーラインを引きながら読んで頂きたい。
# 画面を漠然と見ているだけじゃないだろうか。

(γ) 2020/02/03(月) 21:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.