エクセルBVA AブックのセルA1の値をBブックのセルA1へ転記するマクロで 次のようなマクロで成功しました Sub TEST6()
エクセルBVA AブックのセルA1の値をBブックのセルA1へ転記するマクロで 次のようなマクロで成功しました Sub TEST6() Application.ScreenUpdating = False '別ブックを開く Workbooks.Open Filename:=ThisWorkbook.Path & "\B.xlsx" Dim A, B '別ブックに転記 Set A = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion Set B = Workbooks("B.xlsx").Worksheets("Sheet1").Range("A1") A.Copy B Application.ScreenUpdating = True '別ブックを保存して、閉じる Workbooks("B.xlsx").Save ’Workbooks("B.xlsx").Close End Sub 一つ問題点は Bのブックが今どうゆう状態にあるかです 閉じていたら 問題はないのですが 開いていたら2重に開くことになってしまいます 閉じた状態でも開いた状態でもできるようにしたいのですが 処理を分岐したらよいのでしょうか? ほかに良い方法があればご教示いただきたいです 共有にすればよいのですが 2台のPc間でおこなって いますのでそれぞれエクセルのバージョンが違いますし 同期するのに最低5分かかるのでこのような 方法にしています よろしくお願いいたします
開いていなければ Dim A, B '別ブックに転記 Set A = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion Set B = Workbooks("B.xlsx").Worksheets("Sheet1").Range("A1") A.Copy B Application.ScreenUpdating = True '別ブックを保存して、閉じる Workbooks("B.xlsx").Save Workbooks("B.xlsx").Close ここまで 開いていれば '別ブックに転記 Set A = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion Set B = Workbooks("B.xlsx").Worksheets("Sheet1").Range("A1") A.Copy B Application.ScreenUpdating = True ここまで としたいです
Excel | Visual Basic・61閲覧
ベストアンサー
開いているかを事前にチェックしてフラグを設定し、フラグに合わせて分岐するようにしてみてはどうでしょうか。 Sub TEST6() Application.ScreenUpdating = False Dim A As Range, B As Range, wb As Workbook, flg As Boolean For Each wb In Workbooks If wb.Name = "\B.xlsx" Then flg = True Exit For End If Next If flg = True Then Workbooks.Open Filename:=ThisWorkbook.Path & "\B.xlsx" End If '別ブックに転記 Set A = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion Set B = Workbooks("B.xlsx").Worksheets("Sheet1").Range("A1") A.Copy B If flg = True Then '別ブックを保存して、閉じる Workbooks("B.xlsx").Save Workbooks("B.xlsx").Close End If Application.ScreenUpdating = True End Sub
ありがとうござます Bが開いているとき問題なく転記できました 閉じているときが問題です インデックスが有効ではありませんとでます フルパスでしょうか? Set B = Workbooks("B.xlsx").Worksheets("Sheet1").Range("A1") の部分です 閉じているときは、開いて転記→保存→閉じるの動作ができません すみません
質問者からのお礼コメント
ありがとうございます 感謝
お礼日時:5/27 18:01