• ベストアンサー

エクセルでブックAの範囲を、自働的にブックBの範囲にコピーしたい

宜しくお願いします。 エクセルでの質問です。 不定期に更新保存するブックAの範囲A1:H30を、2週間に一度定期的に開くブックBの範囲C1:J30に、ブックBを開いた時に自働的にコピーされるようにしたいです。その時はブックAは開いていない状態です。 もしマクロ等使うのであれば全く判らないので、実際の記入式等、最初から教えてもらえると助かります。 申し訳ありませんがお願いいたします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

日ごろ、やっている作業をマクロの記録でコード化します。 まず、ブックBを開いて、ツールバーのツール=>マクロ=>新しいマクロの記録 を実行します。これから実行する作業がマクロのコード化されて記録されていきます。 ファイル=>開く=<ブックA でブックAを開きます。 A1:H30を選択=>コピィ ブックBを開いて=>C1を選択=>貼り付けを実施 ブックAを閉じます。 ツールバーのツール=>マクロ=>マクロの記録の終了 以上で、実行した作業のコード化が終了します。 念のために、マクロが正常に作動するか確認します。 ツールバーのツール=>マクロで マクロを選択すると ウィザードの中に  Macro1 があると思いますので 選択して、実行します。 先ほど実行した内容がそのまま実行されます。 次に、ブックBを開いたときに、そのコードが実行されるようにします。 ツール=>マクロ=<Visuai Basic Editor をクリックするとマクロのコードを編集する画面が出ます。 左側にVBAProjectがありますので標準モジュール=>Module1を開くを 記録されたコードがありす。 Sub Macro1() Workbooks.Open Filename:="C:\Users\Documents\ブックA.xls" Range("A1:H30").Select Selection.Copy Windows("ブックB").Activate Range("C1").Select ActiveSheet.Paste Windows("ブックA.xls").Activate ActiveWindow.Close End Sub とかいった風になっていると思います。 Sub~End Subの間に表示るされているコードが実際に作業した内容です。 VBAProjectをみて ThisWorkBookがあるので、クリックして開きます。 上部分に General とあるので、右側の▼をクリックして ThisWorkBookに変更します。 Private Sub Workbook_Open() End Sub が自動で作成されますので、 Private Sub Workbook_Open()とEnd Subの間に、作成されたコード(Sub~End Subの間のコード)を全てコピィして 貼り付けてください。 ファイルを保存して、もう一度開いてみます。 開いた時に、記録でえられた作業が実行されます。 まとめ、 マクロの記録で、毎日作業している内容を記録します。 VBEditorのThisworkBookのPrivate Sub Workbook_Open() に記述している内容がブックを開いたときに実行されます。

jyurymicke
質問者

お礼

ありがとうございました。 何とか期限に間に合いました。 詳細に教えていただき、感謝いたします。 本当にありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.7

>マクロの開き方、記録の仕方、動作の記載式 全く判りませんので、例を書いていただけると助かります。 自動的にやれということは、VBAを使わないと難しい。 マクロの記録などの方法は、Googleででも、この言葉で照会すれば、たくさん記事があり、すぐ判る。それもしないで、何から何まで書いてくれというのは、丸投げで、ここは、いくら厚意で回答する場らしいが、おかしい。 2週間に1度程度では、当面手操作でやり、WEBででも照会し勉強のこと。 マクロの記録 Auto_Open 他ブックへコピー VBA(シートのコピーでもよいのかどうか)

jyurymicke
質問者

お礼

申し訳ありませんでした。 同じことを20ファイル位やらなければならないので、手作業も難しく。 本来なら勉強すべきですが、その時間も取れない人もいることをご理解ください。

すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.6

NO5に追加です。 示したページのマクロ名のところでMacro1となっているところは 必ずAuto_Openにしてください。 でないと自動で実行されません。

すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.5

> マクロの開き方、記録の仕方、動作の記載式 全く判りませんので、例を書いていただけると助かります。 エクセルマクロ(VBA)自動記録 http://excel.onushi.com/macro/auto.htm マクロの記録 http://www.officepro.jp/excelmacro/rec/index.html http://www.officepro.jp/excelmacro/rec/index1.html 参考にしてください

jyurymicke
質問者

お礼

ありがとうございました。 時間がなかなか無く、皆さんにお願いしてしまいました。 今後、少しずつ勉強していきます。

すると、全ての回答が全文表示されます。
  • shorun
  • ベストアンサー率42% (133/310)
回答No.4

◆注意 ブックBを間違って2週間以内に開いてしまった時に、不定期に更新中のブックAの内容がブックBに開示されて支障あるなら、この先は無視してください!! ◆エクセル2007の場合に簡単な方法として 1.ブックAの範囲A1:H30を選択→右クリック→コピー 2.ブックBのC1を選択→右クリック→形式を選択して貼り付ける→リンク貼り付け ◆蛇足 ブックBを開いても、更新前のまま警告が出て、更新されていなければ これに対して更新できるように設定する必要があります。 もしわからなければ、別途その警告を書いて質問してください。

すると、全ての回答が全文表示されます。
回答No.2

ブックBのC1に =ブックA!A1 などとして、各セルに対応するセルのリンクを入力しておきます。 リンクの更新方法はいろいろ変更可能です。下記を参照してください。 http://office.microsoft.com/ja-jp/excel/HP051993801041.aspx

すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

ブックBを開いてマクロの記録をします その時に名前をAuto_Openと言う名前にしてください。 それで、あなたの行いたい動作(ファイルを開きコピーする)を実行してください。 ブックBを保存してください。 次回から起動すると、ファイルを開きコピーを自動でやってくれます。

jyurymicke
質問者

補足

マクロが全く判らないのですが。 「ブックBを開いてマクロの記録をします その時に名前をAuto_Openと言う名前にしてください。 それで、あなたの行いたい動作(ファイルを開きコピーする)を実行してください。」 マクロの開き方、記録の仕方、動作の記載式 全く判りませんので、例を書いていただけると助かります。

すると、全ての回答が全文表示されます。

関連するQ&A