Excel VBA 質問スレッド No.80 (未解決)

ブックの保護の構文で、別シートへのセルの貼り付けが出来ないです。

投稿者 : MKMK     投稿日時 : 2020/06/08(Mon) 20:13:51     OS : Windows 10     EXCEL : 未指定
初心者です。
NetでサンプルCDを探しながらやってみたのですが、問題が起きてしまいました。
THIS WORKBOOK特定のシート(原紙①と②)にブックの保護をかけ
(シート名、シートの移動防止が目的)、モジュールで設定した原紙の複写したシートは
ブックの保護がかからないようにしました。
実行後、複写後のシートはブックの保護はかかっていないのですが、セルの別シートへの貼り付けが出来なくなってしまいます。※貼り付け先で動かない
同じシート内でのコピペは出来ます。シートを跨ぐ場合のみ出来ません。

下記の書き込みの
アクティブシートの原紙のブックの保護と指定シート以外のブック保護解除
を削除するとコピペが出来るようになるので、ブックの保護が影響していると思うのですが
複写後のブック保護がかかっていないので、なぜシート間のコピペが出来ないのか
分からず困っています。
THIS WORKBOOKに下記の構文を記載しています。


Private Sub Workbook_Open()
 '原紙のブックの保護(シート名と移動の制限)
If ActiveSheet Is Sheets("原紙①)") Then ブック保護
If ActiveSheet Is Sheets("原紙②") Then ブック保護
 '製品マスターの更新
Sheets("製品MST").Select
Range("A1").Select

'製品MSTを読み取り専用で開く
Workbooks.Open Filename:= _
"パス商品MST.xlsx", ReadOnly:=True
'製品MSTからコピペ
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

ThisWorkbook.Worksheets("商品MST").Range("A1").PasteSpecial _
xlPasteValuesAndNumberFormats

Application.CutCopyMode = False
Application.DisplayAlerts = True

Application.DisplayAlerts = False
Workbooks("【移動・コピー厳禁!!】商品MST.xlsx").Close
Application.DisplayAlerts = True
End Sub

 ' アクティブシートの'原紙のブックの保護と指定シート以外のブック保護解除
 Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh Is Sheets("新規損益(原紙)") Then
ブック保護
ElseIf Sh Is Sheets("原紙②") Then
ブック保護
Else
ブック保護解除
End If
End Sub
 ファイルの終了時の操作  製品マスター情報の削除
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("製品MST").Select
Columns("D:F").Select
Selection.ClearContents
Range("D2").Select


Sheets("原紙①").Select
Range("A1").Select
ThisWorkbook.Close SaveChanges:=True
ブック保護解除
End Sub

Private Sub ブック保護()
ThisWorkbook.Protect Structure:=True, Windows:=False
End Sub

Private Sub ブック保護解除()
ThisWorkbook.Unprotect

End Sub

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2020-08-10 18:25:57 )

Page
Top