[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『閉じているブックのリンク張り付け』(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
(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
その点はありますが、
>手作業で目的のセルを参照した後に、
>「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
できたのは、なぜかリンク先のパス名のみ表記され、表記されるべき値(日付)が表記されません。
もう一つは、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
なお、ふたつの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
あ、なんだ数式のリンク先ウンヌンでなく、 ExecuteExcel4Macro の問題だったのか、失礼しました。 (Jaka) 2020/02/02(日) 15:19
(γ) 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.