こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAについて教えて下さい

エクセルのファイルを2つ開いている状態で
仮に名前を試験1、試験2とします。

VBAを使用し
試験2の指定した位置にあるセル(数値)を
試験1の任意の位置に挿入する

しかし、試験2のシートは複数あります。

僕がやりたいのは
試験1の任意の位置に挿入する数値は
試験2のシートが変わっていようが
今開いているシートから指定した位置にあるセルから数値を挿入してほしいのです

いちいち、VBAを使いwooksheetsで指定するのも面倒なので質問しました。

なにか、別の方法あるでしょうか?
あれば、コード書いて貰えるととても助かります。

投稿日時 - 2016-11-13 04:43:12

QNo.9255001

すぐに回答ほしいです

質問者が選んだベストアンサー

 今仮に、開いている状態となっている2つのエクセルファイルの名前をそれぞれ試験1.xlsm、試験2.xlsmとします。
 また、「試験2の指定した位置」とは、「試験2の現在開いているシート」の例えばA1セルであるものとします。
 同様に「試験1の任意の位置」とは、例えば「試験1のSheet1のB2セル」であるものとします。

 その場合、「試験2の現在開いているシートのA1セル」に入力されている数値を、「試験1のSheet1のB2セル」に転記(コピー)するVBAの構文は次の様なものになります。

Workbooks("試験1.xlsm").Worksheets("Sheet1").Range("B2").Value = Workbooks("試験2.xlsm").ActiveSheet.Range("A1").Value

 尚、もしそのVBAのマクロを試験1.xlsmのファイルに記述している場合には、次の様に記述する事も出来ます。

ThisWorkbook.Worksheets("Sheet1").Range("B2").Value = Workbooks("試験2.xlsm").ActiveSheet.Range("A1").Value

 逆に、もしそのVBAのマクロを試験2.xlsmのファイルに記述している場合には、次の様に記述する事も出来ます。

Workbooks("試験1.xlsm").Worksheets("Sheet1").Range("B2").Value = ThisWorkbook.ActiveSheet.Range("A1").Value

 また、もしそのVBAのマクロを試験2.xlsmのファイルに記述している場合において、「試験2の現在開いているシートの現在選択しているセル」に入力されている数値を、「試験1のSheet1のB2セル」に転記(コピー)するVBAの構文は次の様なものになります。

Workbooks("試験1.xlsm").Worksheets("Sheet1").Range("B2").Value = ActiveCell.Value

投稿日時 - 2016-11-13 07:02:36

お礼

ありがとうございます!

思った結果が出ました!
さらに、応用していきたいと思います!

投稿日時 - 2016-11-15 20:16:20

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問