• ベストアンサー

Excelで内容の自動更新

エクセルマクロについて教えてください。 複数の各担当者別のエクセルファイルと その担当者別のエクセルファイルの内容をすべてまとめた 総合のエクセルファイルがあります。 各担当者別のエクセルファイルに内容が入力されると、 総合のエクセルファイルにもその内容が自動的に追加されるようにすることは できるのでしょうか。 マクロを使わないと無理だとは思いますので、参考になるコード等があればご教授ください。 よろしくお願いいたします。

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

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

こんばんは、 取り合えず、各担当者のファイルをネットワーク上の共有フォルダーに転送データとでも名前をつけて、保存してください。 各担当者のファイルに、ボタンでも作成して、以下のマクロをコピィしてみてください。 また、L2セルに、保存した転送データのファイルのパスとファイル名を入れておきます。パスがわからなければ、保存したファイルのプロパティでも開けば出ています。\\パソコン名\フォルダ名\転送データ.xlsとかになると思います。 Sub ボタン3_Click() 'データが2行目のA~Jで、最大100行までとして、コピィします。 Range("A2:J100").Cut  'L2のセルに入れてあるファイル名(共有フォルダの転送ブックを開きます。 Workbooks.Open Filename:=Range("L2").Value 'もし、転送ブックをほかの人が開いていたら、閉じて作業中止します。 If ActiveWorkbook.ReadOnly = True Then ActiveWorkbook.Close MsgBox "他のユーザーが使用中です" Else  '転送データの最終の行のA列をアクティブにします。 Range("A65536").End(xlUp).Offset(1, 0).Activate  'コピィした部分を貼り付け ActiveSheet.Paste Application.CutCopyMode = False   '転送データのブックを保存して閉じます。 ActiveWorkbook.Save ActiveWindow.Close End If End Sub 以上が、各担当者のブックで実行するマクロです。 マクロを実行すると、シートの2行目A2~J100が転送データの最後の行から下にコピィされると思います。 次に、総合ファイルのL2にも、転送データのパスとブック名をいれて 以下のマクロを記述しておきます。 方法は同じですが、多少、実行する内容が違っています。 転送データの2行目A2~J1000を、総合テータの最後の行以下にコピペします。 Sub ボタン2_Click() '転送データのブックを開く Workbooks.Open Filename:=Range("L2").Value '転送データをほかの人が開いていないか確認 If ActiveWorkbook.ReadOnly = True Then ActiveWorkbook.Close MsgBox "他のユーザーが使用中です" Else 'データがあるかどうか確認 If Range("A65536").End(xlUp).Row = 1 Then ActiveWindow.Close MsgBox ("新規データはありませんでした") Else 'データのA2からJ1000をカット Range("A2:J1000").Cut '総合ファイルの最後の行をアクティブに ThisWorkbook.Activate Range("A65536").End(xlUp).Offset(1, 0).Activate 'データを貼り付ける ActiveSheet.Paste Application.CutCopyMode = False Workbooks("転送データ").Activate '転送データを保存して終了 ActiveWorkbook.Save ActiveWindow.Close End If End If End Sub 以上、こちらでは、試していませんが大丈夫かと思います。 すみませんが、今夜はお酒が入っているのでエラーでたら連絡ください。 ところどころに説明入れておきましたのそちらの状況に合わせて編修してください。 'で始まる部分は説明ですので、削除していただいてもかまいません。 難しいコマンドは使っていないと思いますので、理解してもらえると思います。

tkman0001
質問者

補足

ご返信遅れて申し訳ございません。 こちらで編集させていただいて問題なく動きました。 この様なやり方があったのですね~。 大変勉強になりました。 またご質問させていただいた際にはよろしくお願いいたします。 ありがとうございました。

その他の回答 (2)

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

やりたいことは、どこまで必要なのでしょうか。 1、各担当者が追加したデータを、総合のファイルの最後に加えていく。 2、各担当者が、総合のファイルも編修を行って、行った内容も総合ファイルに、反映させる。 2であれば、エクセルよりもアクセスなどで、ひとつのファイルを共有したほうが簡単です。 1でよければ、以下のテクニック参考にしてください。 準備 各担当者のパソコンに入力用のファイルを置く 各担当者が参照できる共有フォルダーに、仮にデータをためておくためのブックを保存しておく。 一人の総合ファイルの担当者に総合ファイルを準備 手順 1、各担当者がデータ追加していき、適当な件数入力したら、共有ブックのファイルを開いて、データをコピィ追加して保存、各担当者のデータは削除する。 2、ほかの担当者も同様の作業 3、時々、総合ファイルの担当者が共有ブックのフィル開いて、たまっているデータをコピィして、たまっていたデータを削除して保存。 この手順でよければ、マクロもさほど複雑でなく出来ると思います。 この手順でよければ、回答ください。 また、アドバイスいたします。

tkman0001
質問者

補足

ご回答ありがとうございます。 やりたいことは、まさに『1』の方です! 大変お手数ですが、ご教授ください。 よろしくお願いいたします。

  • sineminna
  • ベストアンサー率31% (118/370)
回答No.1

マクロ使わなくてもブックとシートを参照する式を入れれば反映されます。 Book2 Sheet1のA1セルの値を参照 =[Book2]Sheet1!$A$1

tkman0001
質問者

補足

すいません。説明が足りませんでした。 エクセルファイルの内容は顧客リストなのですが、 担当者別のエクセルファイルに顧客情報を追加していくと 総合のエクセルファイルにも追加されていくといった感じです。 回答いただいたやり方ですと、セルが固定されてしまうので出来ないのです。

関連するQ&A

  • EXCELパスワード付ファイルでリンクの自動更新について

    EXCELでパスワードをファイルに設定したのですが、Linkの更新をするとき、マクロの記述でWorkbook.Open(,,password・・・)の様にパスワードを自動的に入力したいのですが、どのようなコードで可能になりますか。 EXCELのマクロ初心者です。よろしくお願いします。

  • Excelの自動操作について

    お世話になります。 Windows7 Pro Excel2010 <現状> Excelの特定フォーマットがあり、  1.「コード」 の箇所にコードを入力   ※コードはコード一覧に記載されており、先頭のコードをコピーして貼り付け。  2.コード入力後、「データ読込」ボタンを押下   ※ODBCにてDBよりコードで抽出された情報が当該フォーマットの一覧部分に     表示されます。  3.コードをファイル名として保存。          ・          ・          ・ 上記の処理を、コード一覧の全てのコードに対して繰り返します。 <ご質問> 上記を手作業でやるとかなり時間がかかってしまいます。 上記作業を自動化したいのですが、何かよい方法はございますでしょうか。 なお、特定フォーマットは既に作成済みで、コード一覧については自動化の 方法により別シート、もしくは別Bookにしたいと思ってます。 やり方としては、コード一覧の先頭から最後までループで回しながら、コードの入力⇒ボタン押下⇒名前を付けて保存(ファイル名=コード)・・・となると思うのですが、具体的なやり方が分かりません。 Excelの機能でマクロの自動記録というものがあるようですが、今回のケースだとコード一覧のコード数が決まっている訳ではないので(今月は100でも来月は150かもしれないので)、この機能は使えないという認識です。 ご教授の程、宜しくお願い致します。

  • excel VBAを使って、データを自動的に表示させたい!

    excelのVBA・マクロの書き方について教えてください!! たとえば、商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名と数量を入力するだけで、商品データを参照して、産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 「商品名」だけを入力して、表示させることはできたのですが、 商品名が同じで、数量が違うものがあると、片方のものしか表示されません。 A・B列に「商品名」・「数量」を入力して、自動でデータが表示される方法はありますか??

  • excel VBAを使って、データを自動的に表示させるには!?

    excelのVBA・マクロの書き方について教えてください!! 商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名を入力するだけで、商品データを参照して、数量・産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 本を見ながらやっていたのですが、なかなか上手くいきません! (商品名を入力する)セルをあらかじめ指定し、そこに商品名を入力して表示させる方法はあったのですが・・・ セルを指定せずに、A列ならどこに商品名を入力しても、自動でデータが表示される方法はありますか??

  • エクセルの、記録を終了したマクロに内容を追加したい

    エクセル操作の質問です。 マクロで、記録を終了した後に、そのマクロに内容を追加したい場合があります。 今までは… 1、追加したい内容を、別のマクロで記録する。 2、そのマクロの編集で、コードをコピーし、先のマクロの編集で貼り付け、保存する。 3、追加したマクロを削除する。 といった操作をしてきましたが、もっと簡単な方法はないものかと。 ご存知の方がおりましたら、宜しくお願いいたします。

  • 特定セルの内容を更新したら、その更新日を自動的に表示する方法について

    エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させたいと思っております。 例えば『A1』へ新規に文字入力したり、セルの内容を更新した時に、セル『B1』にその日の日付が自動で表示される。 そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。 御手数ですが、エクセル関数またはVBA、マクロのいずれかで実現可能な方法があれば教えて下さい。 何卒、宜しくお願いいたします。

  • Excelシートの自動更新

    Excel2013ブックAでシートの内容変更したのちリンクしている別のExcel2013ブックB~Dを開き更新をするボタンを押し更新して上書き保存しているが更新Excelブックが数部ありいちいちExcelブックを開き更新するのが面倒でなんとかExcel2013ブックA内変更後リンクExcel2013ブックB~Dの更新をボタン一括で自動更新したいのですがボタンにマクロ登録(VBAコード入力)とかでできますか。宜しくお願いします。

  • エクセルファイルの自動起動と内容更新

    エクセルファイルを自動で起動させ、標準モジュールで書かれたマクロ(新しいブックを作成し、そのブック内シートに値を代入)を実行させマクロ実行時に作成されたファイルを上書き保存させる方法ってありますか? コマンドボタンを配置して、上記を実行させることはできますが、自動起動はタスクを使用すればいいのかな~くらいしかわかりません。 どこかに詳しいページご存知ありませんか?

  • Excelマクロでpdfを自動作成したい

    複数のExcelシートからなるブックを、pdfとして出力しています。 現在はJustSystemのJustpdf2ドライバを使っているのですが、これだとマクロで完全自動化できないことが判明しました。 ・PDFのフアイル名と保存場所 ・上書きかどうか をいちいち聞いてきます。 Excelマクロで完全自動化するには、 ・ファイル名、保存場所をマクロで指定できる。もしくはExcelファイルと同じ場所に同じファイル名で作成する ・1シート目は上書き、2シート目からは現存のpdf (前シートのpdf)に続けて保存できるように、マクロで「上書き」か「続けて保存」かを指定できる ことが必要なのですが、JustSystemに問い合わせたところ、Justpdf2では無理とのことでした。 上記のように、複数シートからなるExcelブックを、マクロで完全自動でPDF化できるドライバ、方法がありましたら、お教えください。

  • エクセルファイルを数人で自動作成するには?

    以前このような質問をしました。 ☆効率的な書類の作成について教えて下さい http://okwave.jp/qa/q9134400.html 複数のユーザーが入力するデータを、 1つのエクセルファイルに効率的にまとめたいのです。 2つのオプションをさらに考えました。 (1)OUTLOOKにデータをメールしてもらい、 マクロで、自動的にメールからエクセルに保存していく。 (2)INFOPATHのフォームを作成し、 それをメールして、入力したデータをエクセルファイルに保存していく どちらのオプションがいいでしょうか?

専門家に質問してみよう