こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VBA 複数ブックへ書き込み

VBA初心者です。

1つのフォルダ内にある100(ファイル名001から100)個のエクセルファイル(ブック)の特定の場所(すべてのエクセル
ファイルはファイル名は違うが、同一のシート名で同一のセルの構造になっている。
以上に対して、1つのもとになるファイルA(ブック、シート)の特定のセル(同一列の行を上から順次下る)セルの値を先の同一フォルダ内のエクセルファイル100(001~100)個に対して、ブックオープン、特定セルのデリート、特定セルへの書き込み、ブック保存という一連の作業を行いたいです。

多数のファイルから1つの集計ファイルに値を読み込んできて書き込むサンプルはあるようですが、逆に1つのファイルから同一フォルダ内の多数のファイル(ブック)の特定場所に書き込むためのサンプルコードを教えていただけると大変助かります。
以上よろしくお願いいたします。

投稿日時 - 2014-02-25 13:30:22

QNo.8489773

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

>ただ、私は、VBAコードで処理する方法ないしは、サンプルコードなどがほしかった

「マクロの記録」で記録したコードは、まぎれも無い「VBAコード」です。

基礎になる部分を「マクロの記録」で作り、固定になっている部分を変数に書き換えるとかすれば、それがそのまま「VBAコードで処理する方法」になります。

また、「マクロの記録」で基礎になる部分を作れば、それがそのまま「サンプルコード」になります。

「VBAのコードと、マクロの記録で作られたマクロは、別物では?」って言う先入感があると、上記のような事実に気付けません。

「実は、VBAのコードと、マクロの記録で作られたマクロは、同じ物なのだ」って事に気付けば、マクロの記録を応用して自分でサンプルコードを手に入れる事が可能だし、マクロの記録を応用して自分でVBAコードで処理する方法を手に入れられます。

質問者さんは「欲しいのはソレじゃない」って思っているでしょうけど、実は「マクロの記録で手に入る物」が「貴方が欲しがってた物」なんですよ。

「マクロの記録」って、名前が悪いです。これって「VBAコードの記録」って名前に変えた方が良いと思う。

投稿日時 - 2014-02-26 10:16:03

ANo.3

複数のブックに転記するというのがありました。これはどうでしょうか。
http://www016.upp.so-net.ne.jp/cheetah/xlvba/Excel/Workbook/Workbook061.html

投稿日時 - 2014-02-25 19:17:12

お礼

貴重な情報大変ありがとうございました。
さっそく試してみます。

投稿日時 - 2014-02-26 08:30:46

ANo.2

http://www016.upp.so-net.ne.jp/cheetah/xlvba/Excel/Workbook/Workbook06.html の「複数のブックを連続的に開く」
http://www016.upp.so-net.ne.jp/cheetah/xlvba/Excel/Workbook/Workbook02.html の「名前を指定してブックを開く」

この2つを組み合わせるのはどうでしょうか。セルに対する一通りの操作は
http://www016.upp.so-net.ne.jp/cheetah/xlvba/Excel/Range/index.html が参考になると思います。

参考URL:http://www016.upp.so-net.ne.jp/cheetah/xlvba/Excel/index.html

投稿日時 - 2014-02-25 16:05:36

補足

kotaro2014様

的確なアドバイスありがとうございます。また、有益なサンプルコードがあるサイトを

お教えいただき大変助かりました。Googleで検索していましたが、このサイトは見つけられ
なかったです。

ブックを連続して開くの書き込むのは理解できました。
あとは、元シートの有る列の値を行ごとに転記していく方法を考えてみます。

投稿日時 - 2014-02-25 17:03:01

ANo.1

「ツール」⇒「マクロ」⇒「新しいマクロの記録」で、記録状態にしてから

>1つのもとになるファイルA(ブック、シート)の特定のセル(同一列の行を上から順次下る)セルの値を先の同一フォルダ内のエクセルファイル100(001~100)個に対して、ブックオープン、特定セルのデリート、特定セルへの書き込み、ブック保存という一連の作業

を1ファイル分やって、マクロの記録を終了させます。

あとは、そのマクロを編集して、残り99個分、コピペして繰り返すようにするか、ループで繰り返すようにすれば良いでしょう。

「○○させたい時は、どういうコードを書くと良いのか?」という場合は、このように「新しいマクロの記録」で、実際に「○○させて」みて、マクロとして記録し、記録したマクロをVBAのエディタで見れば良いのです。

そうすれば「○○するのは、こういうコードになるのか」ってのが判ります。

投稿日時 - 2014-02-25 14:03:27

補足

ご連絡ありがとうございます。
マクロの記録で対応するという方法があること理解できました。
ただ、私は、VBAコードで処理する方法ないしは、サンプルコードなどがほしかったのです。
でも役に立ちましたのでありがとうございました。

投稿日時 - 2014-02-25 14:25:49

あなたにオススメの質問