- ベストアンサー
VBAについて教えて下さい
エクセルのファイルを2つ開いている状態で 仮に名前を試験1、試験2とします。 VBAを使用し 試験2の指定した位置にあるセル(数値)を 試験1の任意の位置に挿入する しかし、試験2のシートは複数あります。 僕がやりたいのは 試験1の任意の位置に挿入する数値は 試験2のシートが変わっていようが 今開いているシートから指定した位置にあるセルから数値を挿入してほしいのです いちいち、VBAを使いwooksheetsで指定するのも面倒なので質問しました。 なにか、別の方法あるでしょうか? あれば、コード書いて貰えるととても助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
今仮に、開いている状態となっている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
お礼
ありがとうございます! 思った結果が出ました! さらに、応用していきたいと思います!