次の方法で共有

エクセルのマクロで実行時エラーが出て悩んでいます。

Anonymous
2016-05-31T11:05:18+00:00

エクセルでマクロを組み始めたばかりの者です。下記のようなマクロを組んでみましたが、27行目もしくは41行目のActiveSheet.Pasteで「実行時エラー‘1004‘: 変更しようとしているセルまたはグラフは保護されているため読み取り専用となっています…」というエラーメッセージが出て止まってしまいます

しようとしている内容は、転送ボタンを押し各シートの指定セルへ一括転送(コピー)をしたいのです。

その際、転送先はシート保護をしておきたいのです。

エラーはエクセル2010で確認しましたが、職場のPCを使用するため2007や2003等他のバージョンを利用する可能性もあります。また、仕事で使用するため早急に使わなければならず焦っています。

Option Explicit

Private Sub CommandButton2_Click()

Call Macro2

End Sub

Sub Macro2()

Workbook.Open Filename:=”K:¥共有¥○○○.xlsm”

ActiveSheet.Unprotect

ThisWorkbook.Activate

Range(”D4:G20”).Select

Selection.Copy

Windows(”○○○.xlsm”).Activate

Range(”E7”).Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save

ActiveWindow.Close

Application.CutCopyMode = False

Workbook.Open Filename:=”C:¥Users¥Desktop¥×××.xlsm”

ActiveSheet.Unprotect

ThisWorkbook.Activate

Range(”D4:G20”).Select

Selection.Copy

Windows(”×××.xlsm”).Activate

Sheet(”△△△”).Select

Range(”AF18:AI34”).Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save

ActiveWindow.Close

Application.CutCopyMode = False

Workbook.Open Filename:=”K:¥共有¥□□□.xlsm”

ActiveSheet.Unprotect

ThisWorkbook.Activate

Range(”D4:G20”).Select

Selection.Copy

Windows(”□□□.xlsm”).Activate

Sheet(”▽▽▽”).Select

Range(”AF18:AI34”).Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save

ActiveWindow.Close

Application.CutCopyMode = False

MsgBox " 『○○○』と" & vbCrLf & "『×××』と" & vbCrLf & "『□□□』の" & vbCrLf & "規格を変更しました。"

End Sub

どの様に修正すれば良いのでしょうか?

マクロが原因でしょうか?または他の原因があるのでしょうか?

マクロ初心者のため、修正方法など具体的な詳細をお教えいただけないでしょうか。

お手数をおかけして申し訳ございませんが、よろしくお願いします。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2016-05-31T15:53:13+00:00

>Workbook.Open Filename:="C:¥Users¥Desktop¥×××.xlsm"

>ActiveSheet.Unprotect

>ThisWorkbook.Activate

>Range(”D4:G20”).Select

>Selection.Copy

>Windows(”×××.xlsm”).Activate

>Sheet(”△△△”).Select

>Range(”AF18:AI34”).Select

>ActiveSheet.Paste

下記理由によりエラーが発生しているのではないでしょうか?

ActiveSheet.Unprotect

が実行される時にアクティブなシートが「△△△」とは異なるシートである場合,

Sheet(”△△△”).Select

によりアクティブシートが

ActiveSheet.Unprotect

を実行した時とは異なるシート(「△△△」というシート名のシート)に切り替わります.すると,保護を解除したのと異なるシートに

ActiveSheet.Paste

で貼り付けを行うこととなり,エラーが発生するのではないでしょうか?

この回答は役に立ちましたか?

0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 最も役に立つ