- ベストアンサー
エクセルマクロで実行時エラーが発生し、修正方法を教えてください。
- エクセルでマクロを組み始めたばかりの者です。マクロ実行時に「実行時エラー‘1004‘:変更しようとしているセルまたはグラフは保護されているため読み取り専用となっています」というエラーメッセージが表示され、マクロが止まってしまいます。マクロの目的は、転送ボタンを押した際に各シートの指定セルに一括で情報を転送(コピー)することです。転送先のシートは保護されているため、エラーが発生しています。
- エラーはエクセル2010で確認されており、他のバージョン(2007や2003)でも同様のエラーが発生する可能性があります。また、この問題を解決するためには具体的な修正方法が必要であり、マクロ初心者としては詳細な案内を求めています。
- マクロの修正方法について、具体的な手順や注意点を教えていただけないでしょうか?マクロを修正して正常に動作させるためのアドバイスやポイントをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 多分、保護の解除がうまくいってないのでは? Sub Macro2() Dim wbk1 As Workbook Dim wsh1 As Worksheet Dim tsh As Worksheet Application.ScreenUpdating = False Set tsh = ActiveSheet 'ThisWorkbook.Worksheets(1)? Set wbk1 = Workbook.Open("K:\共有\○○○.xlsm") Set wsh1 = wbk1.Worksheets(1) '○○○.xlsmのシートが1枚ならこのまま。複数ならシート名指定に変更 wsh1.Unprotect tsh.Range("D4:G20").Copy wsh1.Range("E7") wsh1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True wbk1.Save wbk1.Close Set wbk1 = Nothing Set wbk1 = Workbook.Open("C:\Users\Desktop\×××.xlsm") Set wsh1 = wbk1.Worksheets(1) '×××.xlsmのシートが1枚ならこのまま。複数ならシート名指定に変更 wsh1.Unprotect tsh.Range("D4:G20").Copy wsh1.Range("AF18") wsh1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True wbk1.Save wbk1.Close Set wbk1 = Nothing Set wbk1 = Workbook.Open("K:\共有\□□□.xlsm") Set wsh1 = wbk1.Worksheets(1) '□□□.xlsmのシートが1枚ならこのまま。複数ならシート名指定に変更 wsh1.Unprotect tsh.Range("D4:G20").Copy wsh1.Range("AF18") wsh1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True wbk1.Save wbk1.Close Set wbk1 = Nothing Application.ScreenUpdating = True MsgBox " 『○○○』と" & vbCrLf & "『×××』と" & vbCrLf & "『□□□』の" & vbCrLf & "規格を変更しました。" End Sub 動作確認してないですけど、これで試してみて下さい。
お礼
ありがとうございました。 無事解決しました。