• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
langQ
博客园    首页    新随笔    联系   管理    订阅  订阅
【VBA】シートの保護と解除、パスワード設定と判定【ProtectとUnprotectを使う】

参考元:【VBA】シートの保護と解除、パスワード設定と判定【ProtectとUnprotectを使う】
https://daitaideit.com/vba-sheet-protect/

シートの保護をする

Sub TEST1()
  
  'シートを保護
  Sheets("Sheet1").Protect
  
End Sub

 
シート保護を解除する(.UnProtect)

Sub TEST2()
  
  'シートの保護を解除
  Sheets("Sheet1").Unprotect
  
End Sub

 
シートの保護のパスワード設定と解除と判定

パスワードを設定してシート保護

Sub TEST3()
  
  'パスワードを設定して、シートを保護
  Sheets("Sheet1").Protect Password:=123
  
End Sub

 
パスワード付きシート保護を解除

Sub TEST4()
  
  'パスワード付きのシート保護を解除
  Sheets("Sheet1").Unprotect Password:=123
  
End Sub

 
シート保護でパスワード設定の有無を判定

「Password:=""」で、保護を解除して、エラーが発生する場合は「パスワードあり」、エラーが発生しない場合は「パスワードなし」と判定します。

Sub TEST5()
  
  On Error Resume Next
  '空欄のパスワードで、保護を解除しようとしてみる
  Sheets("Sheet1").Unprotect Password:=""
  'エラーが出る場合は、パスワードの設定あり
  If Err.Number <> 0 Then
    Debug.Print "パスワードが設定されています"
  'エラーなしは、パスワード設定なし
  Else
    Debug.Print "パスワードは設定されていません"
  End If
  On Error GoTo 0
  
End Sub

 

一部のセルのロックを解除してシート保護をする
セルロックの解除は「セル範囲.Locked = False」を使います。

※1回下記コードを実行した後、再実行できない。
セルロック再度設定するように、Sheets("Sheet1").Unprotect解除する必要。

Sub TEST6()
  
  'A1のセルロックを解除
  Sheets("Sheet1").Range("A1").Locked = False
  'シートを保護
  Sheets("Sheet1").Protect
  'A1に値を入力
  Sheets("Sheet1").Range("A1") = "ABC"
  
End Sub

 

「UserInterFaceOnly:=True」を使う
マクロからの入力を有効にして、シート保護

Sub TEST8()
  
  'マクロからの操作は許可して、シートをロック
  Sheets("Sheet1").Protect UserInterFaceOnly:=True
  
End Sub

 
シート保護の状態で、マクロから値を入力

Sub TEST9()
  
  'マクロから値を入力してみる
  Sheets("Sheet1").Range("A1") = "ABC"
  
End Sub
posted on 2024-10-03 23:57  嚯嚯go  阅读(1751)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3