電子書籍の厳選無料作品が豊富!

はじめまして。
マクロ・VBA初心者の為、教えていただけたらと思います。
win7で、エクセル2013の使用をしております。

エクセルの共有がどうしてもうまくいかない部分があり、
Aの共有ブックをサーバーに置き、Bのブックをローカル。
Aの共有ブックから、Bのローカルのブックに全ての内容をコピー。

Bのローカルブックに更新内容を記載し、
Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法を模索しております。

更新部分だけにしたいのは、Aのブックは幾つかのシートが入っていますが、
複数人数で更新する可能性がある為、かぶる危険性を最小にしたい為、
更新部分のみを抽出⇒コピーをしたいと考えております。

全ての内容をコピーする事までは、
Aのシートの中身は位置等が決まっており、反映部分もBのシートと同じ位置の為、
マクロで作成できましたが、
その後の、AとBのシートの更新情報を取る方法が解らない為、質問させていただきました。

更新部分だけを反映させる組み方を教えていただけないでしょうか?
よろしくお願い致します。

※内容として不足事項もありましたら、ご指摘いただければと思います。

A 回答 (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ブックに反映する。

この回答への補足

AとBのブックを分けたい理由も明記するべきでした。すみません・・・。
AとBを分けたい理由は、「条件付書式」に有ります。

今回、共有エラーの発生確率が上がる(っぽい)理由として、条件書式かな?というところまでで、
それを外すと共有は出来るのですが、
条件付書式が無いと、とても見づらい表になってしまう為、この方法をとらざる得ないといったところです。

条件付書式がBのブックには入っていて、
Aのブックから「値貼り付け」で、データの吸出しをしています。
(コピペだと条件付書式が外れる為)

もちろんの事ですが、Aのブックには数式は入ってないので、
BからAに持っていった時に数式が崩れる様な問題は有りません。

そもそも表からみなおさなければいけないのかもしれませんが、
行数とシート数が複数存在していることもあるので、(まとめることの出来ないシート)
Aの元データのシートと、Bの条件付書式の入ったシートという事で、良い方法を模索しております。

補足日時:2013/08/08 12:34
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございました!!!
(1)の機能自体知りませんでした。とても勉強になりました!!
まだまだ知らない事ばかりです・・・。
VBAのソースもこれから勉強させていただきます。

ただ、すみません。ご返答頂いた2つとも
Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法

としては、上手く行ったのですが、
「AのブックからBのブックにコピー」が
反映できない状態となってしまいました・・・。

(1)つ目だと、マクロ形式のブックが読み込めない様ですし、
(2)つ目だと、Bのブックを開いた状態で、Aのブックを開いた時点で、エラーが発生してしまう為、Aのブックから最新状態のコピーは出来ないかな?と。。。

複数人数で作業する可能性が高い為、
毎回ブック自体をコピーして~というのがまき戻りされそうで怖いというのも有って・・・
(・・・わがままで申し訳ありません。)

今回、欲しい内容としては、(1)の方が近いですが、
使い勝手は(2)の方がよさそうだな。と思いました。
とても勉強になりました。


AとBのブックを分けたい理由を補足に記載させて頂きました。
もし、他の方法でも良いので、いい方法ありましたら、ご教授いただけたらと思います。

お礼日時:2013/08/08 12:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!