はじめまして。
マクロ・VBA初心者の為、教えていただけたらと思います。
win7で、エクセル2013の使用をしております。
エクセルの共有がどうしてもうまくいかない部分があり、
Aの共有ブックをサーバーに置き、Bのブックをローカル。
Aの共有ブックから、Bのローカルのブックに全ての内容をコピー。
Bのローカルブックに更新内容を記載し、
Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法を模索しております。
更新部分だけにしたいのは、Aのブックは幾つかのシートが入っていますが、
複数人数で更新する可能性がある為、かぶる危険性を最小にしたい為、
更新部分のみを抽出⇒コピーをしたいと考えております。
全ての内容をコピーする事までは、
Aのシートの中身は位置等が決まっており、反映部分もBのシートと同じ位置の為、
マクロで作成できましたが、
その後の、AとBのシートの更新情報を取る方法が解らない為、質問させていただきました。
更新部分だけを反映させる組み方を教えていただけないでしょうか?
よろしくお願い致します。
※内容として不足事項もありましたら、ご指摘いただければと思います。
A 回答 (1件)
- 最新から表示
- 回答順に表示
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ブックに反映する。
この回答への補足
AとBのブックを分けたい理由も明記するべきでした。すみません・・・。
AとBを分けたい理由は、「条件付書式」に有ります。
今回、共有エラーの発生確率が上がる(っぽい)理由として、条件書式かな?というところまでで、
それを外すと共有は出来るのですが、
条件付書式が無いと、とても見づらい表になってしまう為、この方法をとらざる得ないといったところです。
条件付書式がBのブックには入っていて、
Aのブックから「値貼り付け」で、データの吸出しをしています。
(コピペだと条件付書式が外れる為)
もちろんの事ですが、Aのブックには数式は入ってないので、
BからAに持っていった時に数式が崩れる様な問題は有りません。
そもそも表からみなおさなければいけないのかもしれませんが、
行数とシート数が複数存在していることもあるので、(まとめることの出来ないシート)
Aの元データのシートと、Bの条件付書式の入ったシートという事で、良い方法を模索しております。
早々の回答ありがとうございました!!!
(1)の機能自体知りませんでした。とても勉強になりました!!
まだまだ知らない事ばかりです・・・。
VBAのソースもこれから勉強させていただきます。
ただ、すみません。ご返答頂いた2つとも
Bのローカルブックで更新した部分だけをAの共有ブックに反映させる方法
としては、上手く行ったのですが、
「AのブックからBのブックにコピー」が
反映できない状態となってしまいました・・・。
(1)つ目だと、マクロ形式のブックが読み込めない様ですし、
(2)つ目だと、Bのブックを開いた状態で、Aのブックを開いた時点で、エラーが発生してしまう為、Aのブックから最新状態のコピーは出来ないかな?と。。。
複数人数で作業する可能性が高い為、
毎回ブック自体をコピーして~というのがまき戻りされそうで怖いというのも有って・・・
(・・・わがままで申し訳ありません。)
今回、欲しい内容としては、(1)の方が近いですが、
使い勝手は(2)の方がよさそうだな。と思いました。
とても勉強になりました。
AとBのブックを分けたい理由を補足に記載させて頂きました。
もし、他の方法でも良いので、いい方法ありましたら、ご教授いただけたらと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) フォルダ内の複数ブックを同シート名毎に連結させたい 1 2022/04/07 21:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 更新部分だけを別のシ...
-
【マクロ】【VBA】別ブックへの...
-
エクセルで別ブックをバックグ...
-
複数ファイルから特定シートの...
-
エクセル ブック間 串刺し(...
-
VBAでブックを非表示で開いて処...
-
Excel起動時に特定のワークシー...
-
エクセルにおける,「ブック」...
-
エクセルで開いていないbookの...
-
エクセルの表二枚目の表作り方
-
印刷しようとすると強制終了に...
-
Excel: ハイパーリンクのジャン...
-
VBA バックグラウンドで別ブッ...
-
Excel帳票からExcel一覧を作成...
-
エクセル2016です。「ブッ...
-
エクセルのシートの名前の変更...
-
行、列の挿入がリンク先に反映...
-
エクセルで、3つのブックの中...
-
EXCEL2010VBAでシートに抽出デ...
-
Excel VBA セルと同じ名前のブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
(マクロ)vlookupの元データを同...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
エクセルで「ディスクがいっぱ...
-
Excelで複数ブックの同一セルに...
-
複数ファイルから特定シートの...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
-
Excelファイルをダブルクリック...
-
フォルダ内の複数ファイルから...
-
エクセルファイルを開かずにpdf...
-
外部ブック参照が#REF!になって...
-
エクセルで複数のシートを別フ...
-
エクセルシートの一部を送りたい
-
エクセルで50行ごとに区切った...
おすすめ情報