
写真1の【表1】では、列A~Jまでデータタブの"フィルター"をしてあります。
開発タブの"挿入"をクリックし、
フォームコントロールの"ボタン"を選んで記録を選択し、左クリックでボタンの範囲を指定し、
記録が開始されたら、登録したい操作である、
黄色セルのフィルター3カ所にチェックを入れる(①~③)
①発注数フィルターの"(空白セル)"のチェックを外す
②部品状況フィルターの"保留中""見積のみ"のチェックを外す
③発注伝票Noフィルターの"(空白セル)"のみチェックを入れる
"記録終了"をクリックし登録を終わらせる。
以上です。
※写真1の表2の様にピンクのセル、
部品状況"未発注"のみボタン1つで
表示させたいです。
"ボタン"でやりたい事は①~③のフィルター操作だけです。
校閲タブの"シートの保護"をしていない時はボタンの動作は正常に動きますが、
校閲タブの"シートの保護"をした場合は"実行時エラー '1004' "
となり、実行出来ません。
解決方法(VBA等)を教えて下さい。
よろしくお願いします。

No.3ベストアンサー
- 回答日時:
#1です。
>」画像の【表3】の様になり"オートフィルター"のチェックが自動で外れていて以降、フィルターの操作が出来なくなってしまいます。
これを解決しないと使えません。
#1流れで回答します。
マクロの記録を使用して保護を設定してみてください。
パスワードは記録できないかも知れませんが、オートフィルターの使用する場合のコードが記録されます。
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= True, AllowFiltering:=True
とは言っても、判りにくいかも知れませんね。
Excelの Protect メソッドには、パラメータなるものがいくつかあります。このパラメータを設定する事で写真のダイアログのチェックボタン操作と同じことが出来ます。
MSのリファレンスです。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
補足1のプロシージャに書き加えると
Sub 黄色フィルター()
'
' 黄色フィルター Macro
'
ActiveSheet.Unprotect Password:="999"
'
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=5, Criteria1:="<>"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=10, Criteria1:="=発注済み", _
Operator:=xlOr, Criteria2:="=未発注"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=9, Criteria1:="="
ActiveSheet.Protect Password:="999", AllowFiltering:=True
End Sub
No.2
- 回答日時:
Worksheet.Protect メソッドのUserInterfaceOnlyプロパティにTrue を指定すると、画面上からの変更は保護されますが、マクロからの変更は保護されなくなります。
たぶん、こんな感じで。
ActiveSheet.Protect UserInterfaceOnly:=True
それから、シートに保護をかける際に、許可する操作として「オートフィルタの使用」にチェックを入れても行けるかもしれない。
No.1
- 回答日時:
こんにちは、
シート保護を解いて実行
終了後 シート保護を掛けるやり方で、、下記のようにします。
ボタンを右クリック マクロの登録をクリック ダイアログの編集を押す
該当のVBAコードが現れたら、
ActiveSheet.Unprotect
ActiveSheet.Protect
を追加
例
Sub ボタン1_Click()
'
' ボタン1_Click Macro
'
ActiveSheet.Unprotect
記録されたマクロ
ActiveSheet.Protect
End Sub
なおパスワードが設定してある場合は、
ActiveSheet.Unprotectに追加して
スペースを空け Password:="設定されているパスワード"
例
ActiveSheet.Unprotect Password:="パスワード"
ActiveSheet.Protect Password:="パスワード"
とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) [スライサー]に関して、 1 2022/05/24 21:07
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルにぴったし写真を挿入
-
エクセル画像(写真)挿入
-
エクセルシートの見出しの文字...
-
【マクロ】【画像あり】関数が...
-
EXCELのVBAで複数のシートを追...
-
空白のはずがSUBTOTAL関数でカ...
-
勤怠表について ABS、TEXT関数...
-
エクセルの複雑なシフト表から...
-
【マクロ】エラー【#DIV/0!】が...
-
オートフィルターの絞込みをし...
-
Excelに貼ったXのURLのリンク...
-
【Officer360?Officer365?の...
-
エクセル
-
グループごとの人数のカウント
-
Excelで4択問題を作成したい
-
エクセル GROUPBY関数について...
-
グループごとの人数のカウント
-
グループごとの個数をカウント...
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
写真2を追加補足。
有難うございます
(補足1)
Sub 黄色フィルター()
'
' 黄色フィルター Macro
'
ActiveSheet.Unprotect Password:="999"
'
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=5, Criteria1:="<>"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=10, Criteria1:="=発注済み", _
Operator:=xlOr, Criteria2:="=未発注"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=9, Criteria1:="="
ActiveSheet.Protect Password:="999"
End Sub
有り難うございました。
(補足2)
(補足1)の様にしたらほぼ成功しました。
ですが、最後の"シートの保護"をVBAですると
画像の【表3】の様になり"オートフィルター"のチェックが自動で外れていて
以降、フィルターの操作が出来なくなってしまいます。
これを解決しないと使えません。
どうか宜しくお願いします。
解決1-1
Sub 黄色フィルタ()
'
' 黄色フィルタ Macro
'
ActiveSheet.Unprotect Password:="999"
'
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=5, Criteria1:="<>"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=10, Criteria1:="<>保留中", _
Operator:=xlAnd, Criteria2:="<>見積のみ"
ActiveSheet.Range("$A$2:$J$17").AutoFilter Field:=9, Criteria1:="="
ActiveSheet.Unprotect Password:="999"
解決1-2
ActiveSheet.Protect Password:="999", Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
これで、解決しました。
Qchan1962さんのおかげで解決にたどり着きました。
エクセル初心者の方なので、助かりました。
Qchan1962さん、本当にありがとうがざいました。