保護されたブック(Microsoft Excel)でのマクロの使用
ロリは、他の人と共有したいワークブックに問題がありました。ブックにはマクロが含まれていましたが、他のユーザーがブックを変更できないようにブックが保護されている場合は常に、Loriは「マクロが無効になっている」と報告します。
テストでは、保護されたワークシートと保護されたワークブックの両方でマクロが引き続き使用可能であることが示されているため、Loriの正確な問題を再現するのは少し難しいです。 [マクロ]ダイアログボックスを表示して、使用可能なマクロのリストを表示することはできます。それでも、マクロの1つを選択して実行できます。
もちろん、マクロを表示して実行することは、Loriの問題ではないかもしれません。保護されたワークシートで使用すると、マクロが正しく実行されない可能性があります。その場合、問題は通常、マクロがワークシートに適用されている保護に違反するアクションを実行しようとした場合にのみ発生します。たとえば、保護によって行または列の削除が許可されておらず、マクロが削除を試みた場合、それは機能しません。
この場合の解決策は、変更を加える前にワークシートの保護を解除するようにマクロを変更することです。以下に、これを行う方法の基本を示します。
Sub ModifyProtectedSheet() ActiveSheet.Unprotect password:="yourpassword" 'work on the worksheet here ActiveSheet.Protect password:="yourpassword", _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
この例の最初の行はワークシートの保護を解除し、処理を実行してから、最後の行で再びワークシートを保護します。ブックが保護を使用している場合は、同じ手法をブックで使用できます。保護を解除してから変更を加えてから、再度保護します。
ロリの問題は、彼女が問題の説明で使用した「共有」という言葉にも関連している可能性があります。共有することで、Loriが共有ワークブックを使用して他のユーザーがワークブックを「共有可能」にすることを意味する場合、共有がアクティブ化されると警告が表示されます。警告は、共有ブックでマクロを「表示または編集」できないことを示しています。ただし、これは、マクロが無効になっていることを意味するわけではありません。マクロダイアログボックスを表示してマクロのリストを表示し、実行するマクロを選択できるためです。ただし、VBAエディターを表示して実際のマクロコードを確認することはできません。
最後に、共有ブックで単に無効になっているExcelの機能がいくつかあります。マクロがこれらの無効なアクションのいずれかを実行しようとすると、正しく機能しません。これはExcelの制限であり、それについてできることは何もありません。 (共有ワークブックで実行できないことの詳細については、オンラインヘルプシステムを使用して「共有ワークブック、制限」を検索してください。)これらの制限を回避する唯一の方法は、ワークブックを共有しないことです。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(12570)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link:/ excel-Using_Macros_in_Protected_Workbooks [保護されたワークブックでのマクロの使用]
。