[[20190612154747]] 『シートの保護解除について』(amaya) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートの保護解除について』(amaya)

社内の書類でシートに保護がかかっています。
保護解除をしようとするとパスワードを要求されるのですが、
作成した人はすでに退社をしているようで、だれが作ったのかも
わからない書類です。
パスワードがわからないで解除する方法はありますか?

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 ここの「よくある質問」の記述です。

http://www.excel.studio-kazu.jp/lib/e910w/e910w.html
(OK) 2019/06/12(水) 16:30


 リンク先のしたの方にホニャララがありますが、
 そこから先は自己責任です。(その上の方も
 自己責任ですが)
(OK) 2019/06/12(水) 16:32

シートの保護解除程度なら、ランダムアタックでも簡単に突破してしまうかと。
保護のかかったシートモジュールに以下を貼り付けて実行してみてください。 シート保護のパスワードは強度がとても低いので、違う文字列で解除できてしまう事も多いです。

とりえあず1〜8桁の英数にしていますが、ヒットしない場合は桁数を増やしたり、記号も含めたりしてみてください。

 Sub test()
    Const MOJI = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Dim i As Long
    Dim j As Long
    Dim jMax As Long
    Dim im As Long
    Dim iw As Long
    Dim cw As String

    im = Len(MOJI)
    Randomize
    For i = 0 To 99999                              '試行回数。適当でOK
        jMax = WorksheetFunction.RandBetween(1, 8)  '桁数。適当でOK
        cw = ""
        For j = 1 To jMax
            cw = cw & Mid(MOJI, WorksheetFunction.RandBetween(1, im), 1)
        Next j
        On Error Resume Next
        Me.Unprotect cw
        If Err.Number = 0 Then
            MsgBox cw, vbInformation
            Debug.Print cw
            Exit For
        End If
        On Error GoTo 0
    Next i
 End Sub
(???) 2019/06/12(水) 16:41

2007以降のファイル形式の場合、マクロを使わずに解除する方法も書いておきます。 利用は自己責任でどうぞ。
 ・失敗に備えて、元のブックはコピー作成しておくこと。
 ・ブックの拡張子を「.zip」に変更する。
 ・zipを開いて、xl\worksheets\にあるxmlファイルを取り出す。
 ・xmlファイルをエディタで開く。
 ・「<sheetProtection password="xxxx" sheet="1" objects="1" scenarios="1"/>」の部分を削除。
 ・書き換えたxmlファイルを、元の位置に戻す。(上書き)
 ・拡張子を元に戻す。
(???) 2019/06/12(水) 17:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.