• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 違うブックへの自動入力マクロ)

VBAで別ブックへの自動入力マクロ

このQ&Aのポイント
  • 初心者の私にはVBAで別のブックへの自動入力マクロを作成する方法がわかりません。年間売り上げの計算を行いたいのですが、どう手をつければいいでしょうか?
  • ブック1にはランダムな売上データが入力されており、ブック2には日付ごとの合計を入力したいです。月全体の合計を計算するマクロをブック2を開くと同時に実行させたいです。
  • 処理が重くなる可能性があるため、ブック1とブック2を分けています。参考となる記述方法があれば教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

多くの場合に,For Nextなどでセルを一つ一つ舐めるように巡回して集計させるよりも,関数を使って一発で計算させた方が高速に結果を得られます。 手順: ブック2でALT+F11を押してVBE画面を開く 挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub Auto_Open()  dim w as worksheet  application.screenupdating = false  workbooks.open filename:="c:\folder\Book1.xls"  for each w in thisworkbook.worksheets   with w.range("B2:C" & w.range("A65536").end(xlup).row)    .formula = "=SUMIF([Book1.xls]売上!$A:$A,$A2,[Book1.xls]売上!B:B)"    .value = .value    .numberformatlocal = "#,###"   end with  next  workbooks("Book1.xls").close savechanges:=false  application.screenupdating = true end sub ブック2を開くと,自動的に集計値を各シートに記録します。 注意: ●上記マクロに記載したBook1.xlsの保存場所,具体的なブック名・シート名は正しい内容に修正すること ●ブック2の各シートのA列(A2以下のセル)には,所定の日付を事前に埋めてあること #わざわざマクロで集計せず,最初から関数を埋めて計算させる仕込みをした方が遙かに簡単です。  ただし「ブック1を閉じたまま」SUMIFで集計させようとするとエラーになるので,次の資料にあるような数式で工夫する必要があります http://support.microsoft.com/kb/260415/ja #ピボットテーブルレポートを使って自動集計させた方がクールですが,皆さんお好みじゃないので説明はパスします。

tokyo2199
質問者

お礼

  ご指導ありがとうございました。 色々とやってみましたが、勉強不足のため、 エラーから脱出できませんでした。 ご指摘の通り関数を直接組み込む方がはるかに簡単で確実でした。 また何かありましたら、よろしくお願いいたします。 ありがとうございました。

関連するQ&A