
VBA初心者です。
設定、部品1、部品2、部品3、部品4と4つのシートがあります。
設定シートにオールクリアボタンを設置し各シートの値だけをクリアする
ようにしたいのですが、「subまたはfunctionが定義されていません」という
エラーが出てしまいます。
間違ってる箇所とうまくいく方法を教えていただけませんでしょうか?
記述は以下のとうりです。
ちなみにエクセルを開くと全シート保護という設定にしているので
まずその解除をしてオールクリアしてまた保護といううふうにしたいです。
Private Sub CommandButton1_Click()
'全シート保護解除
Dim sh As Worksheet
For Each sh In Worksheets
sh.Unprotect
Next sh
'範囲選択
With Worksheet("部品1").Select
Cells.Select
'シートの値だけをクリアする
Selection.SpecialCells(xlConstants, 23).ClearContents
End With
'範囲選択
With Worksheet("部品2").Select
Cells.Select
'シートの値だけをクリアする
Selection.SpecialCells(xlConstants, 23).ClearContents
End With
'範囲選択
With Worksheet("部品3").Select
Cells.Select
'シートの値だけをクリアする
Selection.SpecialCells(xlConstants, 23).ClearContents
End With
'範囲選択
With Worksheet("部品4").Select
Cells.Select
'シートの値だけをクリアする
Selection.SpecialCells(xlConstants, 23).ClearContents
End With
'全シート保護
For Each sh In Worksheets
sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next sh
End Sub
以上です、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
subまたはfunctionが定義されていません
というエラーに関しては
Worksheet("部品1")
ではなく
Worksheets("部品1")
です
----------
Withをあえてつかえば
'範囲選択
With Worksheets("部品1")
.Select
.Cells.Select
'シートの値だけをクリアする
Cells.SpecialCells(xlConstants, 23).ClearContents
End With
ですが、結局下記のように書けます。
Worksheets("部品1").Cells.SpecialCells(xlConstants, 23).ClearContents
で、すべてのシートをまとめるとNo.1さんのように書けます。
No.1
- 回答日時:
cell やrangeの前にシートが指定されていないと
思惑と違うシートやセルが対象になって、なぜそうなるのか理解できなくなります。
必ずシートまで指定するようにしましょう。
もちろんWith句を使って簡略化すればいいのですが、With句の使い方も慣れが必要です。
ご提示の部分だけなら以下で終わりです。
Private Sub CommandButton1_Click()
Dim sh As Worksheet
For Each sh In Worksheets
sh.Unprotect
sh.Cells.SpecialCells(xlConstants, 23).ClearContents
sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next sh
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
血液検査の結果が悪くefgrの値...
-
小数点以下を繰り上げたものを...
-
リンク先のファイルを開かなく...
-
透亮像について。 先日会社の健...
-
excelでsin二乗のやり方を教え...
-
excel関数で TRUEやFALSEについて
-
イタリアから帰国する際、肉製...
-
【エクセル】0以外が入力され...
-
MIN関数で空白セルを無視したい...
-
Excel 0目標に対して数字があ...
-
「内数」という言葉の意味がよ...
-
ワードのページ番号をもっと下...
-
値が入っているときだけ計算結...
-
Excel 数値の前の「 ' 」を一括...
-
WORDで複数語句を検索するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
アトピー性皮膚炎
-
コロナになるのが死ぬほど怖い...
-
検便についてです。 便は取れた...
-
24歳、女性です。性欲が強すぎ...
-
未成年の従姉妹が自分の真似絵...
-
頭痛に関する質問です。現在高...
-
血液検査の結果が悪くefgrの値...
-
肝臓がんになりたいです。肝機...
-
何故 削除され続けるか、
-
◎敢えてノンジャンルカテゴリー...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
風俗店へ行く前のご飯
-
2つの数値のうち、数値が小さい...
-
病院側から早く来てくださいと...
-
EXCELで条件付き書式で空白セル...
-
Excel 数値の前の「 ' 」を一括...
-
リンク先のファイルを開かなく...
-
値が入っているときだけ計算結...
おすすめ情報