![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
『記入可能セルに記入させ、「送信」フォームを押すと、1箇所文字の色が変わり、添付されてメールで送られる。』というマクロを組みました。
その後、
シートがたくさんあるので、VBAを使って、一度にシートの保護、非保護を行いました。
以下はその記述文です。
Sub 保護()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Protect Password:=111
Next
End Sub
Sub 保護解除()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Unprotect Password:=111
Next
End Sub
この保護のマクロを使うと、記入可能なセルは、セルの書式設定の保護タブからチェックをはずしており全く問題ないのですが、
「色が変わる」という設定がエラーになります。
どのようにしたら、色が変わるのも許可されるマクロになるのでしょうか。
ご教示お願いいたします。
No.1ベストアンサー
- 回答日時:
>『記入可能セルに記入させ、「送信」フォームを押すと、1箇所文字の色が変わり、添付されてメールで送られる。
』というマクロこのマクロを
「送信」フォームを押すと、
【そのシートの保護を解除し、】
1箇所文字の色を変え、
【再保護し、】
添付されてメールで送られる。
...と作り変えるか、
Sub 保護()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Protect Password:=111, userInterfaceOnly:=True
Next
End Sub
...と変更し、マクロでの変更を許可して保護するか、などが考えられます。
この回答への補足
このマクロを
「送信」フォームを押すと、
【そのシートの保護を解除し、】
1箇所文字の色を変え、
【再保護し、】
添付されてメールで送られる。
...と作り変えるか、
なるほどなるほど!です!!
視点を変えたらいいんですね。
おかげで問題解決しました!
本当にありがとうございました。
ちなみになんですが、、、もしよろしければ、、、もうひとつ疑問が残っておりまして。
質問文にあるように
Sub 保護()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Protect Password:=111
Next
End Sub
で、保護をかけているのに、シートを個別で保護を解除しようとすると、パスワードを要求されずに解除できてしまいます。
そこで、Ws.Protect Password:=111のコロンをとって実行すると、パスワードを要求されるのですが、「111」と打ってもパスが違うといわれてしまいます。。。どうしたらいいでしょうか。。。
No.2
- 回答日時:
>そこで、Ws.Protect Password:=111のコロンをとって実行すると、
これが失敗だったようですね。
同じように
Sub 保護解除()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Unprotect Password = 111
Next
End Sub
これで解除してください。
モジュールの先頭(General)セクションで Option Explicit ステートメントを使っていませんね?
変数宣言を強制していないと、『Password』がコンパイルエラーにならず、変数と見なされてしまいます。
多分その辺りが影響しているのでしょう。
Option Explicit ステートメントは使ったほうが良いと思います。
また、
>保護をかけているのに、シートを個別で保護を解除しようとすると、パスワードを要求されずに解除できてしまいます。
これは何かの間違いでしょう。よく確認してみてください。
新規Bookで同様の現象が発生するかどうか試してみると良いでしょう。
ちなみに
>For Each Ws In Worksheets
この場合 Worksheets の親が指定されていませんから、
ActiveなBookに対してマクロを実行している事になります。
その点も踏まえておいたほうが良いかもしれませんね。
新しいブックでは保護のマクロが正しく動きました。
エラーが出るほうは、私が右も左もわからずにいろいろいじっているので何かいけないことをしているはずです。。。勉強します。
親切に答えてくださり、本当に本当にありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセル VBAについて 2 2022/09/21 22:21
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) でシートをコピーしたときに 見えないようにする方法 1 2022/04/10 20:27
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
Excel マクロ VBA プロシー...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
ピボットテーブルでの毎回可変...
-
#defineの定数を文字列として読...
-
マクロ実行時、ユーザーフォー...
-
Excelマクロを引数付で起動
-
特定文字のある行の前に空白行...
-
エクセルで別のセルにあるふり...
-
VBAにて別ワークブック上の実行...
-
Excel マクロでShearePoint先の...
-
非表示の列をすべて削除するマクロ
-
Excel VBA 空白行をつめる
-
Excelで大量のデータを規則的に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
特定文字のある行の前に空白行...
-
エクセルVBA
-
マクロの記録を使用したマクロ...
-
wordを起動した際に特定のペー...
-
ダブルクリックで貼り付けた画...
おすすめ情報