• ベストアンサー

別Book値を参照し現在のBookに計算後値入力

閉じているデスクトップの"B"Booksheet1に入力しているA1=3,B2=4の掛けた値12を現在開いている"A"Booksheet1 A3に計算式ではなく値のみを入力したいのですがVBAコードがどなたかお分かりになる方宜しくお願いします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

素直にB、Bookを開いて処理した方が良いですね Sub Test()   Dim myPath As String, a As Long, b As Long   Application.ScreenUpdating = False   myPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")   With Workbooks.Open(myPath & "\B.xls")     a = .Worksheets("Sheet1").Range("A1").Value     b = .Worksheets("Sheet1").Range("B2").Value     .Close False   End With   ThisWorkbook.ActiveSheet.Range("A3").Value = a * b   Application.ScreenUpdating = True End Sub

kuma0220
質問者

お礼

有難うございます、助かりました。構文を理解できるよう勉強します。

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>閉じているデスクトップの"B"Booksheet1に入力している B.xls の Sheet1 としています。 Dim myPath As String Dim a As Long, b As Long myPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") myPath = "'" & myPath & "\[B.xls]Sheet1'!" a = Application.ExecuteExcel4Macro(myPath & "R1C1") b = Application.ExecuteExcel4Macro(myPath & "R2C2") ActiveSheet.Range("A3").Value = a * b

関連するQ&A

  • 同じフォルダー内の別ブックで計算結果を入力

    Aブックsheet1をActiveしており同じフォルダー内にあるBブックのsheet1の検索値"A2"のVLooKUPで出した計算結果13の値のみをAブックsheet1 セル"A2"に入力したいのですが。Excel関数は解るのですがVBA関数となると難しくどなたか解るかた宜しくお願いします。因みにBブックは閉じています。

  • VBA 別シートの計算表

    Excelについて。 シートAに、計算表があります。 セルa1に入力した値によって、いくつかのExcel関数を利用して、 セルb1に結果を出力しています。 いつも、手入力でセルa1に値を入力して結果を求めていますが。 今度、シートBに膨大な入力するための数値があるので、VBAで自動化できないかと考えています。 今回の質問は、VBAで記述する際に、シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力していこうと考えています。 シートAのa1に入力値を代入して、すぐに結果b1の値を結果出力セルに代入していいのでしょうか? 計算表(シートA)での計算を時間をおく必要があるのでしょうか?=一旦、他のセルを選択するなど。 よろしくお願いします。 ・計算表での計算時間は、1秒未満です。 ・計算表の計算過程もVBAで書けば済む話ですが、プログラミングには疎いので、計算表をそのまま利用したいと考えています。=入力の代入だけVBAで書いていきたいと思います。 ・その他、アドバイスなどいただければ幸いです。 よろしくお願いします。 Excel2010

  • VBAの計算式で値を検出し別シートに貼り付ける

    例でA.xls sheet1に添付のデータがありB.xls sheet1のB列に検索値がありC列に記載のとおりの計算式が入力されています。関数入力はC2セルにの計算式を入力しそれを元にオートフィルでC3以降入力しているが膨大な計算式になりExcelを開いたりするのに処理に時間がかかりすぎる為セルに計算式をいれるのではなくVBAで計算式を入力しオートフィルみたいに連続した計算の値のみを入力したいのですがコードが解る方宜しくお願いします。

  • VBAで別ブックからVLOOKUPで抽出

    ブックBシート1A列の値にマッチする値をそれぞれの列にVLOOKUPでブックAシート1にある値から貼り付けたいのですがVBAコードが解る方宜しくお願いします。尚、データーが50行ぐらいあるのですが。

  • セルに数式を入れずに計算結果のみを入力

    B2:D11まで入力された文字と数値がありB,C列のマッチした文字の計算値をH列にいれたいのですが現在H列はVBAによりセルに数式が入っておりますが計算結果のみをH列に入力したいのですが尚、図では11行までですが行数が多い時を踏まえてVBAコードをご教授願います。

  • 入力した数値になるよう組み合わせを計算したい

    A.5~500までの数値を入力 B.1~100までの数値のうち、5つの数値を組み合わせ、Aで入力した値と同様の値となるようにする という計算を行うプログラムを組もうとしているのですが、どういった計算を行えばよいのか分かりません。 ご存知の方いらっしゃいましたらアドバイスお願いします。 ちなみにこれは学校の課題ではありません。個人的な興味です。

  • ブック間の参照~計算

    いつもお世話になっています。 A、B、Cの3つのブックの中の、A1、B1、C1には、小計が算出されています。 これらのA1~C1の合計を、別ブックDのD1に計算したいのですが、どうすれば宜しいでしょうか? 宜しくお願いします。

  • Book1.xlsとBook2.xlsのエクセルファイルが有ります。

    Book1.xlsとBook2.xlsのエクセルファイルが有ります。 VBAを作成しているのはBook2.xlsで操作しています。 Book1 Sheet1 A B C 1 6 4 2 2 8 5 3 3 5 1 4 . Book1のシートのB列とC列には整数が入力されています。 A列には計算式が入ります。 例)A1の計算式 =B1+C1 A2の計算式 =B2+C2 A列の結果をBook2 Sheet1 のA列に反映しようとした場合に、 以下のVBAだと、計算式のコピーになってしまうので、計算結果の値を反映する事が出来ません。 A列の計算結果(上記の例だと、6,8,5)をまとめて反映させる方法はありますか? Sub tashizan() Dim thisBook As Workbook Dim workBook1 As Workbook Set thisBook = ThisWorkbook Set workBook1 = Workbooks.Open("C:\Documents and Settings\Book2.xls") thisBook.Worksheets("Sheet1").Range("A1:A100").Copy workBook1.Worksheets("Sheet1").Range("A1") workBook1.Close End Sub 初心者ですので、宜しくお願いします。

  • 別ブック2列がマッチした文字を入力する

    BブックのC列7行目から文字(15ステップ毎文字が入替る)がまたF列8行目からは年月(2017/4~2018/3)、AブックのA列4行目から年月がまたB列4行目からは文字が添付のように連続して入力されています。BブックC列文字とAブックB列文字が一致、BブックF列年月とAブックA列年月が両方一致した行のAブックC列の文字をBブックのE列に順々に入力していきたいのですが。 どなたかVBAコードが解る方ご教授願います。 環境はwindows7 office2013です。

  • [EXCEL2007]VBAからの別ブック参照VLOOKUPについて

    初めまして。 EXCEL2007で、VBAからFORMULA式を使って別ブックを参照するVLOOKUPを埋め込もうとしています。 このとき、対象となる別ブックのシートに、検索値に合致する情報がないと、「シートの選択」ダイアログが出てしまうのですが、これを出さずに、式を生かしたまま「#N/A」扱いにする(=ワークシート上でVLOOKUPに失敗したときと同じ結果とする)方法はないでしょうか? いろいろ試したのですが解決策が見つかりませんでした。 実装コードはつぎのような形になってます。 Sheet1.Formula = "=VLOOKUP(B2,'[Book2.xls]Sheet1!$B1:$C255,2,FALSE)" Book2のSheet1のB1:C255に、検索キー[B2]の値があるとき、C列の値を取ろうとしています。 このとき、検索に失敗すると、コード実行中に「シートの選択」ダイアログが出てしまうので、これを回避したいのが質問の主題です。 Application.DisplayAlerts = FALSE でもダメでした。 なにか良いアイデアがありましたらご教唆願います。

専門家に質問してみよう