• 締切済み

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 説明が分かりにくくてすみません。 ご教授のほど宜しくお願いいたします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.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行の値が入ると思います。 あとは、編集してみてください。

fujim0211
質問者

お礼

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

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

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

fujim0211
質問者

お礼

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

関連するQ&A

  • 【Excel2003】マクロの実行

    お世話になります。 フォルダー内全てのエクセルファイルに、あるマクロを実行したいのですが可能でしょうか? 例としましては フォルダー「変更ファイル」 以下中にあるファイル ------------------------ ファイル「A.xls」 ファイル「B.xls」 ファイル「C.xls」 ファイル「マクロ.xls」←ソートを行うマクロ入り ------------------------ 「変更ファイル」フォルダー内の「マクロ.xls」を実行してA,B,Cファイル(フォルダー内全てのファイル)内データーを各ファイル毎ソートしたい。 この作業はマクロ.xlsのマクロをカスタマイズしてすることは可能でしょうか? 可能ならやり方を教えてください。 お願いいたします。

  • EXCEL:ファイルを閉じるマクロ

    ファイルA.xlsにファイルB.xlsを開くマクロを作りました。 今度はファイルB.xlsにBを閉じるマクロを作りたいのです。 どうやったらいいのでしょうか? そのマクロは実行ボタンを作ってクリックしたら開く・閉じるをするようにしたいです。 よろしくお願いします。

  • ■ エクセルマクロについてです。初級?

    エクセルのマクロでデスクトップにあるエクセルファイルを開くにはどうしたらいいのでしょうか? 現在は、エクセルファイルA.xls B.xlsという2つを開いていて、マクロを実行することができるのですが、これをA.xlsだけ開いている上体で、実行したいのです。 なので、デスクトップに置いてあるB.xlsファイルを開くコマンド?というか、関数が知りたいのですが、どうしたらいいのでしょうか? 現在はこのような感じになっております。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/9/10 ユーザー名 : ' ' ActiveCell.FormulaR1C1 = "12345" Range("G17").Select ActiveCell.FormulaR1C1 = "129876" Range("G18").Select Windows("B.xls").Activate Range("N16").Select ActiveCell.FormulaR1C1 = "8/4/2008" Range("N17").Select ActiveWorkbook.Save Range("O16").Select ActiveWorkbook.Save ActiveWindow.Close End Sub

  • EXCEL2010 マクロにつきまして

    excel vbaでマクロが作りたいのですが、まったくの初心者で 試行錯誤していますが、なかなか出来ずに困っています。 どなたか、教えていただけませんでしょうか。 ○sheet1 --日付---|A-B-C -------------------- 2013/1/20|1 2 3 2013/1/21|4 5 6 2013/1/22|7 8 9 2013/1/23|5 4 3 2013/1/24|4 5 6 2013/1/25|4 4 4 2013/1/26   ・   ・   ・ ○sheet2 実行ボタンを作成 日付を入力して実行ボタンをクリックすると指定した日付のデータが抽出される 例 2013/1/22 → 実行 A B C ------- 7 8 9 このようなマクロを組みたいのです。 わかりづらくて申し訳ありません。 また、初心者向けのおすすめの参考書や、ホームページがありましたら 教えて頂けると助かります。

  • XCELのVBAマクロで次のことが実行できますか。

    XCELのVBAマクロで次のことが実行できますか。 (前提)WINDOWSで (1)MYDOCのフォルダAにExcelファイルA1.xlsからA9.xlsまで9個のファイルと、もう一つマクロBBの入ったExcelファイルB.xlsがあります。 (2)各Ai.xlsには、Aisheet(i=1カラ9)と名前のsheetが1つのみあります。 (処理したいこと) A1.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 続いて同様にA2.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 以下A9まで実行したい。 (質問)Bのマクロに新たにCCというマクロを作り、CCを実行することで、自動的に(処理したいこと)を実行してしまうようなものを作れますか。 また作るとしたらおおよそどんな風に作ればいいでしょうか。 ご回答よろしくお願いします。

  • excel2003 VBAマクロの作成

    すいません、下記のような条件を満たすマクロのサンプルコードをお願いします。 ■前提条件 ・「検索元データ」はマクロ.xlsの中にある ・「検索先ファイル」は管理ファイル.xlsである ・マクロ.xlsファイルのA列にはデータがn個ある(セル範囲A2:A(n+1)まで) ・C:\one\two\three\管理ファイル.xls のフォルダ位置である(絶対パスで指定する) ・管理ファイルの中にはSheet1,Sheet2,Sheet3・・・・Sheet10の10コのシートがある ■マクロでしたいこと (1)A列のデータが管理ファイル(ブック内)に記載されているかチェックする (2)A列のデータをチェックしたら、下記の通りに列にチェック情報を記載する B列 データがいくつあったか(管理ファイルに記載されていない場合は0と表示) C列 データが記載されているシート名(B列が0の場合は0と表示) (3)次のデータへ (4) (1)-(3)をA列のデータがなくなるまで繰り返す (5)データがなくなったら終了(保存せず閉じない) 以上です。 よろしくお願いします。

  • [EXCEL]VLOOKUP関数がうまくいかないので助けてください

    あ.xls   B  C  1 10   2 12 3 15 い.xls   B  D 1 10 100 2 15 150 3 18 180 あ.xlsファイルのC列に、 あ.xlsファイルのB1セルと、い.xlsファイルのB1を見比べて同じ値なら、 い.xlsファイルのD1の値をあ.xlsファイルC1に値を表示する数式を 入力しようと思います。 「=VLOOKUP(B1,[い.xls]Sheet1!$1:$3,4,false)」と あ.xlsファイルのC1セルに数式を入力しましたが、すべてエラー(#N/A)で 返ってしまいます。 正常に機能するよう、数式を教えてください。

  • 他のBookに指定している外部参照先をセルの文字列で指定する方法

    マクロを使わずに外部参照先を変更する方法を探しています。 例えば, C:\○○フォルダにA+1.xls,A+2.xls・・・A+10.xls という感じでA+X.xlsのXの部分が1~10までのファイルがあります。 それぞれのファイルのSheet1!A1に数値が入力されています。 開いているBookのセルC1に ='C:\○○[A+X.xls]sheet1!A1 みたいな感じで数式を入力して, セルB1にXの部分(1~10)を入力すると セルC1に入力した番号のファイルの Sheet1!A1の数値を出力する方法はないでしょうか? マクロではできるのですが,マクロを使わずに実現したいです。

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。

  • マクロ(Excel)で検索して値の返し方について

    マクロの初心者です。関数でいうvlookupなどを使って、 検索した値を反映させるマクロをお教え下さい。 ファイル名「担当ID.xls」のB列へ「顧客名簿.xls」から 検索したC列(地域)を返したいです。 お手数おかけしますが、全くの初心なので、マクロの 説明コメントも記載して頂けると助かります。 ■ファイル名:担当ID.xls 列A         B      C 顧客番号 地域  担当ID A-1111       ?  os123 A-2222       ?  nr456 A-3333       ?  wk789 ■ファイル名:顧客名簿.xls ■シート名:Sheet1 列A      B     C 顧客番号  名前   地域 A-1111   A   大阪 A-2222   B   奈良 A-3333   C   和歌山 以上です。よろしくお願いいたします。

専門家に質問してみよう