• 締切済み

エクセル 更新部分だけを別のシートにコピー

はじめまして。 マクロ・VBA初心者の為、教えていただけたらと思います。 win7で、エクセル2013の使用をしております。 エクセルの共有がどうしてもうまくいかない部分があり、 Aの共有ブックをサーバーに置き、Bのブックをローカル。 Aの共有ブックから、Bのローカルのブックに全ての内容をコピー。 Bのローカルブックに更新内容を記載し、 Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法を模索しております。 更新部分だけにしたいのは、Aのブックは幾つかのシートが入っていますが、 複数人数で更新する可能性がある為、かぶる危険性を最小にしたい為、 更新部分のみを抽出⇒コピーをしたいと考えております。 全ての内容をコピーする事までは、 Aのシートの中身は位置等が決まっており、反映部分もBのシートと同じ位置の為、 マクロで作成できましたが、 その後の、AとBのシートの更新情報を取る方法が解らない為、質問させていただきました。 更新部分だけを反映させる組み方を教えていただけないでしょうか? よろしくお願い致します。 ※内容として不足事項もありましたら、ご指摘いただければと思います。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法 方法1: Aを開く 校閲タブからブックの共有を設定し保存する 保存したAブックをローカルにコピーする ローカルで編集する エクセルのリボンの編集を開始 全てのコマンドから「ブックの比較と反映」を追加してOK Aブックを開き、ブックの比較と繁栄でローカルで編集した各ブックの変更を吸い上げる。 方法2: ブックの共有は「使用しない」 各ローカルにコピーしたブックは、サーバの「ブックA」とは「異なるファイル名にしておく」 ローカルにコピーしたブックを開く ALT+F11を押す 現れた画面でプロジェクトエクスプローラから当該のブックのThisWorkbookシートをWクリックする 現れたシートに下記をコピー貼り付ける private sub Workbook_SheetChange(byval Sh as object, byval Target as excel.range)  dim myPath as string  dim myFile as string ’言わずもがなですが正しく記入すること  mypath = "\\コンピュータ名\公開フォルダ名\フォルダ\"  myfile = "BookA.xlsm"  application.screenupdating = false  workbooks.open mypath & myfile  target.copy workbooks(myfile).worksheets(sh.name).range(target.address)  workbooks(myfile).close true  application.screenupdating = true end sub ファイルメニューから終了してエクセルに戻る ブックを保存する ブックを開き、更新すると「その都度」Aブックに反映する。

ahirunagiy
質問者

お礼

早々の回答ありがとうございました!!! (1)の機能自体知りませんでした。とても勉強になりました!! まだまだ知らない事ばかりです・・・。 VBAのソースもこれから勉強させていただきます。 ただ、すみません。ご返答頂いた2つとも Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法 としては、上手く行ったのですが、 「AのブックからBのブックにコピー」が 反映できない状態となってしまいました・・・。 (1)つ目だと、マクロ形式のブックが読み込めない様ですし、 (2)つ目だと、Bのブックを開いた状態で、Aのブックを開いた時点で、エラーが発生してしまう為、Aのブックから最新状態のコピーは出来ないかな?と。。。 複数人数で作業する可能性が高い為、 毎回ブック自体をコピーして~というのがまき戻りされそうで怖いというのも有って・・・ (・・・わがままで申し訳ありません。) 今回、欲しい内容としては、(1)の方が近いですが、 使い勝手は(2)の方がよさそうだな。と思いました。 とても勉強になりました。 AとBのブックを分けたい理由を補足に記載させて頂きました。 もし、他の方法でも良いので、いい方法ありましたら、ご教授いただけたらと思います。

ahirunagiy
質問者

補足

AとBのブックを分けたい理由も明記するべきでした。すみません・・・。 AとBを分けたい理由は、「条件付書式」に有ります。 今回、共有エラーの発生確率が上がる(っぽい)理由として、条件書式かな?というところまでで、 それを外すと共有は出来るのですが、 条件付書式が無いと、とても見づらい表になってしまう為、この方法をとらざる得ないといったところです。 条件付書式がBのブックには入っていて、 Aのブックから「値貼り付け」で、データの吸出しをしています。 (コピペだと条件付書式が外れる為) もちろんの事ですが、Aのブックには数式は入ってないので、 BからAに持っていった時に数式が崩れる様な問題は有りません。 そもそも表からみなおさなければいけないのかもしれませんが、 行数とシート数が複数存在していることもあるので、(まとめることの出来ないシート) Aの元データのシートと、Bの条件付書式の入ったシートという事で、良い方法を模索しております。

関連するQ&A

  • エクセルで、そのままコピーするには?

    エクセルのコピーに関する質問です。 ブックAとブックBがあって、 ブックBのシート1の内容を、罫線やセルの高さや幅などをそのままブックAのシート2にコピーしたいのです。 ブックAブックBのシート1は表があり、罫線や行列の高さ・幅が複雑に設定してあります。つまりこの行列の高さや幅を崩さずにコピーしたいのです。 Excel2002を使用しています。が、普通にコピー&貼り付けをすると、列や行の幅、高さがブックAのままで、ブックBのが反映されません。 どうすればいいのでしょうか?教えて下さい。宜しくお願いします。

  • シートコピーでフォントが変わる

    Excel2016を使用しています。 マクロにてシートコピーする処理を行っているのですが、コピー後のフォントがオリジナルと変わってしまう事象に悩んでおります。 ブックAからブックBへ、ブックAのシートAとシートBをworkbooks.sheets.copyを利用してコピーしています。 シートAは問題なくコピーされます。 シートBは内容自体は問題ないのですが、一部分だけフォントが変わってしまいます。 基本的にはMS Pゴシックだったものが、游ゴシックに変わってしまいます(添付画像を見てもらえればと思います)。 ※部分はシートAとシートBで違いがあった場合のチェック用に関数が入っており、シートコピー後に値の貼り付けをして文字列に変えています。 どうして一部のフォントが変わってしまうのでしょうか? ご存知の方はいらっしゃいますでしょうか? ちなみにExcelの新規作成時のフォントは游ゴシックです。

  • Excelシートの自動更新

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

  • Office2010 ベータ版 Excel間のシートのコピー

    Office2010 ベータ版 Excel間のシートのコピー Excel2010を試用しています。 AとBのブックを開いて、Aのシートを右クリック→移動またはコピー→移動先ブック名を 選択しても、開いているBのブック名が表示されません。 AとBの保存形式を「マクロ有効ブック」「Excelブック」「Excel97-2003ブック」と同じ 形式に保存し直して試しても状況は変わりませんでした。 どなたか解決策をご存じでしたら教えてください。 よろしくお願いします。

  • エクセルのマクロでシートのコピー

    いつもお世話になっております。 エクセル2000で次のことをマクロで行いたいのです。 いくつかWorkbookが開いている状態で、シートのコピーを行うのですが、シート名やブック名はその都度違います。 具体的には、Workbook"A" に "a"、"b"、"c" の3つのシート、Workbook"B" に "f"、"g"、"h"の3つのシートがあり、 Workbook"A" の Sheet("a") を Workbook"B" の Sheet("h") の前にコピーしたいのです。 Sheets(1).Copy before:=Workbooks("B.xls").Sheets(3) ところがWorkbookの名前がその都度変わるので困っています。 ブック間の移動は ActiveWindow.ActivateNext などで行っていますがシートのコピーがどうしても分からないので お願いします。  

  • 別ブックへのシートのコピー(Excel)

    エクセル上で、Aというブックのaというシートを、Bというブックにコピーしようと思っています。 過去の質問を検索したらNo2459324でわかりやすい解答があったので試してみたのですが、 AとBのブックを画面上で両方開いて、Aブックのaシート上で、「編集」→「シートの移動またはコピー」とすると、確かに小さな入力ボックスがでてくるのですが、その中の「移動先ブック名」の欄にBというブック名が表示されないので、選択先としてBブックを指定できないのです(その欄にブック名の手入力もできません)。 「(新しいブック)」を選択すると、AでもBでもない新しいブックが生成されてそちらにコピーされてしまうようです。 どのようにしたらブックAからブックBにシートをコピーできるでしょうか。

  • エクセルのシートを別のブックに貼り付けたい

    エクセル2003でブックAという名前のブックを作成しました。その中にシートにはブック内へのリンクがあります。 そして そのシートを別のブックBにコピーしたいのです。 普通にコピー→貼り付け をすると ブック内へのリンクがすべてブックA内へのリンクになってしまいます。 どうしたら ブックAへのリンクを外してコピーできるのでしょうか?

  • 【マクロ】シート名を参照してのシートコピー

    当方マクロ初心者です。 同じブックの中にシートが 1-A、1-B、2-A、2-B、3-A、3-B・・・ という規則のシート名で並んでいます。 "-A"から同じ数字の"-B"へそれぞれシートをコピーしたいのですが、どのようなマクロを組んだらよいのでしょうか。 もう少し具体的に申し上げますと、  ・1-Aのシートから1-Bのシートへコピー  ・2-Aのシートから2-Bのシートへコピー  ・3-Aのシートから3-Bのシートへコピー ・・・・ という事をやりたいです。 もしくは、最初は"-A"のシートだけあって、 それぞれ新たにコピーでシートを作り、その名前を"-B"に変えるという方法でも良いです。 最終的には”1-A、1-B、2-A、2-B、3-A、3-B・・・”というシートが並んでいて、 数字が同じシートは全く同じ内容、というブックを作りたいです。 皆様の知恵を拝借させてください。 よろしくお願い致します。

  • excelでマクロシートをコピーしたとき

    excelでbook1のsheet1のセルA1に「1」を入力→プリントアウト→A1に「11」を入力→プリントアウト・・・以下「31」まで繰り返し。 というマクロが組んであります。 (ボタンにマクロが登録されています。) このシートをbook2にコピーをしたときに マクロを実行する(ボタンを押す)とbook1が開いてしまいます。 これをbook1を開かずにbook2でマクロを実行するには どのようにしたらよいでしょうか。 book2でマクロを作成し直して さらにボタンにマクロを登録していますが、 bookの数が多いのでけっこうな手間になります。 簡単な方法があれば教えて下さい。

  • シートのコピー

    ブックAとブックBに同じ名前のシートがあります。 普段は、ブックAのシートを利用し、上書き保存しています。 ブックBを開く度に、ブックAのシートがブックBのシートに 自動的に上書きコピーされる方法はありませんか? Excel2013です。

専門家に質問してみよう