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

締切り済みの質問

WinXP/Excel2002 でマクロ初級者です

現在、仕事でexcelファイルAに、シート1枚につき1日分のデータを入力しています。
sheet1⇒7/1、sheet2⇒7/2、という風に。

その入力したデータを、1週間ごとにクライアントに報告するため、
別のexcelファイルBの1sheet内に決まったフォーマットにて、
手入力で入力しています。

ファイルAの各シートの中の決まった複数のセルの値をコピーして、
ファイルBの各シートの中の決まった複数のセルにそれぞれ貼り付ける作業を
マクロを組んでボタン1つで実行したいと思っているのですが、
そのようなことは可能でしょうか?また、上記のマクロを以下の条件のもとで可能ですか?

・ファイルAとファイルBの格納場所は、同じサーバ内の別のフォルダ内 に保管されています。

・マクロ実行する際、それぞれのファイルA,Bをその都度起動しないで、
ファイルAの指定したセルの値をファイルBの指定したセルへ反映したいです。

・ファイルCにマクロボタンをつけてマクロを組み、実行したいので、マクロ実行時には、
 ファイルCだけ、その都度起動したいです。

・そのファイルCの保管場所は、ファイルBと同じフォルダ内に入れたいです。

例)
Aの格納場所:\\ServerA\C_社内\週報\7月\週報(7月第1週).xls
Bの格納場所:\\ServerA\C_社内\日別集計\7月\週報(7月第1週).xls
Cの格納場所:\\ServerA\C_社内\週報\7月\週報マクロ.xls

説明が分かりにくくてすみません。
ご教授のほど宜しくお願いいたします。

投稿日時 - 2009-07-20 13:22:27

QNo.5140408

すぐに回答ほしいです

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

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

回答(2)

ANo.2

No1です。なかなか回答が付かないようですね。
お役に立てるかわかりませんが、以下、アドバイスです。
Aのファイル 週報(7月第1週).xls
は、毎週ファイル名が変更されるが、シート名は固定で、7枚ある。各シートの構成は同じ
Bのファイル 週報(7月第1週).xls
は、毎週新規に作成するが、シートは1枚で、先のファイル7枚の内容を1枚にしたもの。
といった感じでしょうか。
例えば、
Cファイル(集計のためのマクロのみ作成するファイル)を開きます、
次に、Aのファイル、Bのファイルを開きます。
Cのファイルにモジュールを作成
Sub ボタン1_Click()
Workbooks(2).Activate
End Sub を実行してみてください。
WorkBooks(1)は最初に開いたCブック、WorkBooks(2)は次に開いたAブック、WorkBooks(3)は次に開いたBブックとなります。
Sub ボタン1_Click()
For i=1 to 7
MsgBox Workbooks(2).Worksheets(i).Range("A1").Value
Next
End Sub
これで、シートが1番目から順に7番目まで変わっていくと思います。
これを利用して
Sub ボタン1_Click()
For i = 1 To 7
Workbooks(3).Worksheets(1).Rows(i * 10 & ":" & i * 11).Value = Workbooks(2).Worksheets(i).Rows("1:10").Value
Next
End Sub
とすれば、Workbooks(3)のひとつのシートに上から順に、Workbooks(2)の7枚のシートの上から10行の値が入ると思います。
あとは、編集してみてください。

投稿日時 - 2009-07-20 19:44:00

お礼

hallo-2007さん

アドバイスありがとうございます!
参考にさせていただきます。
拙い文章に何度もご回答いただき
ありがとうございます。

投稿日時 - 2009-07-21 08:48:01

ANo.1

質問を拝見いたしましたが、出来る出来ないで回答すれば出来ますが、
たいへん複雑で、しかもデータの構成も提示されていないので誰も回答できないのではないでしょうか?
現在、手作業で行っている作業も大変だと思いますが、その理由の多くは
>シート1枚につき1日分のデータを入力しています。
に原因があります。データは日付とともに1枚のシートにひたすら縦方向に入力してください。
このままでは、シート数が膨大になり、希望するシートへ移動するのも大変になりますし、ファイルも大きくなってしまいます。
ご使用のパソコンにもよりますが、限界に達して将来使えなくなります。
まずは、ここを改善する事が優先順位の1番目にあると思います。

投稿日時 - 2009-07-20 13:49:03

お礼

早急なご回答ありがとうございます。

>シート1枚につき1日分のデータを入力しています。
→こちらに関しては、私個人的にもhallo-2007さんと同意見です。
ただ、現在使っている報告系のファイルは、すべてクライアント指定のもので、変更できないか提案を行ったら意味不明なセキュリティポリシーを1時間ほど説教され、却下されてしまいました。。。
社内用にファイルを作ることも、それをサーバ内にもローカルにも保管することをクライアントの命令で現在出来ない状況なんです。。。

ご回答ありがとうございました。
やはり自分でがんばって一から勉強いたします。

投稿日時 - 2009-07-20 14:11:37

あなたにオススメの質問