• ベストアンサー

フォルダ内のブック全ての同じ位置に貼り付け

ある範囲に計算式の入ったセルをコピーして、一つのフォルダに入った全てのExcelブックの同じ位置に貼り付けるという処理をマクロで行いたいのですが、貼り付けるだけでできるようなコードを教えていただけないでしょうか?

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.3

>一つのフォルダに入った全てのExcelブック このフォルダーには、 複写を行うマクロブック、複写元のブック、複写先ブック以外は 配置されていないという前提でよければ、 次のようなコードで行けるんじゃないかと思います。 ※極単純なテストしかしていません m(_ _)m Option Explicit Const FromBookName = "ブックA.xlsx" Const FromRow = 1 '複写開始行番号 Const FromCol = 1 '複写開始列番号 Const CopyRows = 5 '複写行数 Const CopyCols = 4 '複写列数 Const CopyShNum = 1 '複写対象シート番号 '//------------------------------------------------- Sub Main()  Dim buf As String  Dim MyPath As String  Dim FBook As Workbook  Dim TBook As Workbook    Set FBook = Workbooks.Open(ThisWorkbook.Path & "\" & FromBookName)  MyPath = ThisWorkbook.Path & "\"  buf = Dir(MyPath & "*.*")  Do While buf <> ""   If ((buf <> ThisWorkbook.Name) And (buf <> FromBookName)) Then    Set TBook = Workbooks.Open(ThisWorkbook.Path & "\" & buf)    cellscopy FBook, TBook    Application.DisplayAlerts = False    TBook.Save    Application.DisplayAlerts = True    TBook.Close   End If   buf = Dir()  Loop  FBook.Close End Sub '//------------------------------------------------- Sub cellscopy(FBook As Workbook, TBook As Workbook)  Dim CopyRange As Range    With FBook.Sheets(CopyShNum)   Set CopyRange = _    Range(.Cells(FromRow, FromCol), _    .Cells(FromRow + CopyRows - 1, FromCol + CopyCols - 1))   CopyRange.Copy TBook.Sheets(CopyShNum).Cells(FromRow, FromCol)  End With End Sub

typ001
質問者

お礼

今日試させていただきました。 完璧です!ありがとうございました。 さらっとこれほどの事ができるなんて、羨ましい限りです。私も勉強していきたいと思います。本当にありがとうございました。

typ001
質問者

補足

ありがとうございます! 事情があって今日は試すことができなかったので、また明日返信させていただきます。 今の私にはほとんど理解できないコードですが、少しでも理解できるようになりたいです。

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

その他の回答 (2)

  • kon555
  • ベストアンサー率52% (1759/3377)
回答No.2

参考になりそうなページをどうぞ https://tonari-it.com/for-each-next/ ちなみに1つのフォルダに入ったブック全て、というコードよりも、一手間かかっても作業者が「指定」する方が実務的には使いやすいのでお勧めです。 多少解説しておくと、複数の対象物に対して同じ処理を繰り返す場合、大抵はFor Each ~next構文を用います。 今回も「複数のブックの同じ位置に貼り付ける」という「同じ処理」なのでFor Eachで処理できます。 使えると便利な構文なので、この機会に覚えてしまいましょう。

typ001
質問者

お礼

ありがとうございます。勉強して少しでもマスターしたいと思います!

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

意味がつかめない。 ブックA,B,C、D・・が同じフォルダにあると仮定して、 ブックAの例えばSheet1のA1:D5のセル範囲を、(同じフォルダー内の)ブックB.C,D・・の、各Sheet1のセル範囲のA1:D5に貼り付けしたいということか。 シートSheet1以外の参照をしている式は、ブックAのSheet1のA1:D5で、存在しないのか? ーー VBAを用いて、あるフォルダの中のブック(ファイル)を捕まえるコードは、WEBにたくさん出ている(有名なテーマ)。Googleなどで調べて、自分なりに、微修正すればよい。回答者に頼む前に調べてみること。

typ001
質問者

補足

推察していただいた通り、 ブックAの例えばSheet1のA1:D5のセル範囲を、(同じフォルダー内の)ブックB.C,D・・の、各Sheet1のセル範囲のA1:D5に貼り付けしたい。 式は、ブックAのSheet1のA1:D5にあり、式ごと貼り付けしたいのです。 検索して見つけたコードを微修正してみたのですが、フォルダ内のひとつのブックにしか貼り付けできなくて・・ お力いただければと思うのですが・・・

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

関連するQ&A

  • フォルダ内の全てのBookに同じ処理を繰り返す

    フォルダ内にエクセルファイルが約3,000個あります。 この全てのBookに同じ処理をしたいのですが、マクロで繰り返す方法がわからないので教えて下さい。 処理をする内容は簡単なもので、マクロで作りました。 ・ 各Bookには1つのシートしか存在せず、シート名は重要ではないので全て「Sheet1」になっています。 ・ 各Bookのデータの配置や表形式は同じです。 ・ レコードの行数がBookによって異なります。 処理の内容をマクロで作るところまではできましたが、知識がないためタイムアウトです。 ご教示宜しくお願い致します。

  • あるシートをすべてのブックにコピーしたい

    後追加された一つのシートをあるフォルダにあるすべてのexcelブックにコピーしたいですが、ひとつづつコピー上書きしていくとかなり時間がかかります。(500~600ファイルあります) excel マクロで簡単に終わらせることができないでしょうか?

  • フォルダ内の全てのブックを一つのブックへ

    エクセル2010を使っています。 フォルダ内の全てのブックの一番目のシートのみを、 BBB.xlsmというファイルの後ろへ全て1シートずつコピーしたいです。 又はBBB.xlsxでもいいです。 運用していく中で、マクロ用のファイルと作業用のファイルを分けるべきか、 一緒にするべきかも悩んでいます。 フォルダはその都度変わります。 ネットを検索してみたのですが、中々難しく、悩んでいます。 どうぞよろしくお願いします。

  • 同じフォルダにある50個のブックのそれぞれ50枚のシートの集計

    同じフォルダに50個のブックがあり、それぞれのブックが50枚のシートを持っています。ブック名として人の名前、シート名として地名がつけられています。(つまり、総計で2500の地名がつけられたシートがあります。)シートは全て同じ形式です。集計用ブックを作りこの2500枚のシートの同じセルの集計をしたいのですが、どうすればよろしいでしょうか?つまり、2500枚のシートのE1の合計が集計用ブックのSheet1のE1に入るようにしたいのです。2500枚のシートのセルには数式が入っていて、ほしいのはその計算結果(Value)の合計です。また、2500枚のシートのセルの計算結果が””の場合もあります。難しくなければマクロでも結構ですので、是非教えてください。

  • 同一フォルダの別ブックへのデータ貼り付け(VBA)

    Excel2007・VBAにより、マクロ実行ブック(「親」)の≪Sheet1≫シートにおけるP10:P54に入力されている数値を、「親」と同一フォルダにある複数の別ブック(「子」)の≪Sheet1≫シートのP10:P54に貼り付けたいです。 なお、同一フォルダには「子」とは別に本処理対象としない≪Sheet1≫シートが存在しない他のブックも存在しています。 考えたり幾度か検索したりしたのですが、希望に合った内容が出てきませんでした。 宜しくお願い致します。

  • フォルダ内の特定ブックだけを1つのブックにまとめる

    はじめましてマクロ超初心者です。 会社のシステム(ツール?)で同じフォルダに1案件につき2つのブックが作成されます。 毎回約30案件、すなわち同じフォルダに60ブックあります。 (1)同じフルダ内に60ブック (2)その内、同じ案件が2つ。ブック名「1_****」と「2_****」 ****は毎回かわる (3)ブックには2つのシート。シート名「1」と「2」 (4)ブック「1_****」のシート「1」が開いた状態、ブック「2_****」のシート「2」が開いた状態になってる (5)必要なのはブック「1_****」のシート「1」とブック「2_****」のシート「2」 この「1_****」のシート「1」と「2_****」シート「2」を「1_****」にまとめる作業を毎回手作業でやっています。これをなんとかマクロで出来ないでしょうか?同じフォルダにある複数ブックをまとめるマクロは見つけました、複数=全てのブックに実行されてしまいます。フォルダ内の特定のブックをまとめるマクロがみつからず。。。どなたかご教授して頂けませんか?

  • 離れたセルのリンク貼り付けを行うためのマクロについて

    ブック(1)のシート(1)にある複数の離れたセル(B2,D2,C3,F3,B4:F4)をコピーし、別ブックのシート(1)のセル(B2,D2,C3,F3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)はイントラの共有フォルダ上の同一階層に置いてあります。 このブック(1)と同一フォーマットのブックが複数存在し、上記同様にブック(2)の離れたセルをコピーして別ブックのシート(2)のセルへリンク貼り付け。 続いて、ブック(3)の同じセルをコピーし別ブックのシート(3)へリンク貼り付けと言うように、同じセルをコピーし別シートの同じセルへリンク貼り付けの作業を繰り返し行います。 まったく同じ位置のセルをコピー&リンク貼り付けを繰り返し行いたいので、マクロを使って自動実行させたいと思っています。 離れたセルのリンク貼り付けは出来ないのかもしれないですが、アドバイスを頂けると助かります。 宜しくお願い致します。

  • 複数ブックの特定のセルを合計したいです

    中を見ていただき、ありがとうございます。 似たような質問・ご回答があるのは重々承知しておりますが できるだけシンプルなコードを教えていただきたく、質問させていただきました。 さて、いま1つのフォルダ内に,複数のブック(ファイル)が入っています。 すべてのブックはExcel2007で作成しており、目的の作業もExcel2007で行いたいです。 なお、それぞれのブックの名前に規則性はありません。 ブックの中身は統一されており、1ブック1シート、シート名は Sheet1 です。 このシートのB4からP4(横一列15個のセル)には、画像上段のように数値が入っています。 ここでやりたいのは、すべてのブックに入っているそれらの数値を平均して、 別に用意しておいた集計用のブックの同一セル(B4からP4)に入れるという作業です。 ブックを結合してから串刺し演算をしても良いのですが、できればマクロ一発で しかもできるだけシンプルなコードで以上を実現できれば嬉しいです。 過不足等ございましたら補足させて頂きますので、どうかお知恵をお貸しください。

  • VBAでフォルダ内の全ブックにマクロをかけ集計する

    VBA初心者ですが、本を読んで勉強しても分からないので質問させていただきます。 質問したいことは以下の通りです。使用するのはEXCEL2007です。 あるフォルダ内に999から1600と名前の付いたEXCELのファイルがあります。 その全てのファイルに、あらかじめ作成済みのマクロをかけそのマクロをかけたEXCELファイルのE62からH62までをコピーし、別のファイル(作成済み、名前を仮にAとします)にペーストしたいのです。 ペーストは縦に順番に(例えば、999のファイルから切り取ったE62からH62までのデータをファイルAのB2からE2にコピー、1000のファイルから切り取ったE62からH62までのデータをB3からE3へ…)といった感じです。 一度にフォルダ内の全ファイルを開くわけにはいかないので、999に上記の処理を行ったら保存せずに閉じ、今度は1000にといった感じで次々と処理を行っていきたいと思っております。細かいマクロは自分で作成できたのですが、コピーしたものを別ファイルAにペーストする部分と、999から1600まで連続して処理を行う部分ができません。 分かりにくい文章で申し訳ございませんがぜひご教授ください、よろしくお願いいたします。

  • 同フォルダ内複数BOOKを一つのBOOKにまとめる

      『同じフォルダ内の複数BOOKのシートの一部をまとめて1つのBOOKに貼り付けたい』(ミント) 大変困っています!! すべて同じ構成の複数BOOKの最初のシート(Sheet1)の一部のセル範囲を新しい集計用のシートに貼り付けるVBAのコードを教えてください!!!!!! VBAを使用したいのですが、いろいろ調べてもたくさんコードがあって、どれを使えばいいかわからず、混乱状態になってしまっています。。。 詳細はこのような形です。 各BOOKの最初にSheet1があり、その構成はどのBOOKも同じです。 <たとえば・・。>【Book1】 A B C D 1 あ い う え→ラベル行2 お か き く3 け こ さ し【Book2】 A B C D 1 あ い う え→ラベル行2 す せ そ た3 ち つ て と これを【集計用シート】 A B C D 1 あ い う え2 お か き く3 け こ さ し4 す せ そ た5 ち つ て と このようにつなげていきたいのです。全BOOKが複数シートありますが、集計するのはSheet1だけでよいです。 できれば、1行目にあるラベル以外を順番に貼り付けられればと思います。要するに、上記の例でいくと、2行目から集計用シートに貼り付けられていくイメージです。なお、すべてのBOOKは一つのフォルダにまとめられています。 VBA初心者でこの情報だけで絞り込めるのかわからないのですが、他にも情報が必要であれば教えてください。。。 上記のことができるコードを記載頂けたらと思います!!宜しくお願いします!!! なお、Excelのバージョンは2007、OSはWindows7です