• ベストアンサー

エクセルシート保護のパスワード【文字コード】

マクロを使って、シート保護を外そうとしています。 文字コードで詰まってしまいました。 たとえば、シートをパスワード『11』で保護したとします。 pass = "11" ActiveSheet.Unprotect Password:=pass もちろん上記で解除できます。 pass = Chr(49) & Chr(49) 上記に変更しても解除できます。(「1」の文字コードが49なのでこれはわかります。) pass = Chr(33) & Chr(57) ところが、上記でも解除が出来てしまいます。(つまり、「!9」で解除できます。) なぜなのでしょうか。。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

シート保護のパスワードには,「合い鍵」が確かに存在します。 参考: http://okwave.jp/qa/q6750429.html

sillabub03
質問者

補足

なぜそのような事になるのか。正しいパスワードから合鍵を割り出す方法は? もしご存知なら教えて頂けませんでしょうか。ヒントの書かれたURLだけでも結構です。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>なぜそのようなことになるのか シート保護のパスワード,もといセキュリティ設計が甘いからです。 >合い鍵を割り出す方法 パスワード(セキュリティ)破りのご質問にはお答えできません。 常識で判断してもらえればご理解いただけると思いますので,悪しからず了解してください。

関連するQ&A

  • シート保護のパスワードは・・・

    下の「シート保護」マクロは、パスワード「111」でシートを保護しなさい。    「シート保護解除」マクロは、パスワード「111」でシートの保護解除をしなさい。 という命令だと思うのですが・・・ Sub シート保護()   ActiveSheet.Protect possword = "111" End Sub Sub シート保護解除()   ActiveSheet.Unprotect possword = "111" End Sub パスワードを入力してシートの保護を解除しようとすると、 入力したパスワードは間違っています。 CapsLockキーがオフになっていることを確認し、 大文字と小文字が正しく使われていることを確認してください。 というメッセージが出るのですが・・・、 マクロで作成した保護は、マクロで解除しないとダメという意味なのですか? シートで保護解除できるようにしたいのですが、できますか?

  • エクセル97 フォームシートの保護をする時に出る"パスワード"をコード化させたい

    「表示-ツール-フォーム」でボタンを作りました。 そして、マクロの自動登録で「シートの保護」を選び「パスワード:password」を設定し、更に「password」で保護解除をし、マクロ記録終了。 そして、各コードを「シートの保護」:ボタン3、「シートの解除」:ボタン2、に設定しました。 それらを実行させてみたのですが、特に「パスワード:password」を聞かれることなく一連の作業が終了してしまいました。 コードは以下のとおりです。 Sub ボタン2_Click() ' ' ボタン2_Click Macro ' マクロ記録日 : 2004/2/9 ユーザー名 : **** ' ActiveSheet.Unprotect End Sub -------------------------- Sub ボタン3_Click() ' ' ボタン3_Click Macro ' マクロ記録日 : 2004/2/9 ユーザー名 : **** ' ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub そこで、各ボタンのクリック時に、パスワードを聞いてきてくれるコードを書き加えたいのです。 わかる方がいらっしゃいましたら、是非教えてください!! コードに関して素人ですので、できたら、全体を通してコードを教えて頂ければ助かります。 いろいろ探してみたのですが、ギブアップです。 宜しくお願い致します。

  • シートの保護のあとセルの列、幅を動かせるようにしたい

    EXCELマクロでシートの保護はするがセルの行、列の幅を動かせるにしたいです。 シート1,2,3があり、シート2,3のデータをシート1に集約する処理を 行っています。 シート1,2,3は事前にシートの保護を設定し、シートの保護の設定で、ロックされたセル範囲の選択、セル書式設定、列の書式設定、行の書式設定は許可しています。 シート1にシート2,3のデータを設定する時にActiveSheet.Unprotect Password:="password"でシートの保護を解除し、設定後にActiveSheet.Protect Password:="password"を再度保護しています。 空の状態のシート1はセルの行、幅を動かすことはできるのですが、上記のシートの保護を解除し、データ設定後、ActiveSheet.Protect Passwordコマンドで保護するとシート1のセルの行、幅を動かすことができなくなります。 シートの保護設定のやり方があるのでしょうか。 ご指導のほど、よろしくお願いいたします。

  • Excel 2003 で、次のようなVBAを入力しています。

    Excel 2003 で、次のようなVBAを入力しています。 手動でも同じパスワードでシートの保護設定、解除をしたいのですが、 方法はありますか? ご教示よろしくお願いいたします。 ActiveSheet.Unprotect Password ="pass" 'シート保護解除 Selection.AutoFilter Field:=7, Criteria1:="<>" '項目「得意先名」が、「空白以外」を抽出 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True '印刷 Selection.AutoFilter Field:=7 '印刷範囲の解除 ActiveSheet.Protect Password="pass"

  • VBAで、シート保護のパスワードは利用可能ですか?

    VBAソース上で、シート保護で設定したパスワードを取得、使用することは可能でしょうか? ソースにパスワード文字列をベタ書きせずにすむなら、その方法をとりたいので教えてください。 例) 1.[Excelメニュー-シート保護]で、パスワードを設定 2.VBAで、以下のように「1.で設定したパスワード」を取得し、変数に代入 3.Protectメソッドでその変数を使用  VBAソース)  Dim pass As String  pass = 「1.で設定したパスワード」  ActiveSheet.Protect Password:=pass, UserInterfaceOnly:=True

  • エクセル ブック(マクロを含む)を保存してとじると、また開きます。

    ブックに保護をかけた状態で保存してあります。 共有状態にあり、マクロを有効にしてもらいたいので、 (1)開くときに保護解除 (2)保存のときに、保護をかけて保存後、(まだ閉じるとは限らないので)保護解除 ということをやろうとし、以下のように書きました。 エクセルごとではなく、このファイルのみ終了しようとすると、 開いた後と上書保存後に保護を解除する為、 ファイルを終了する時には必ず「変更を保存しますか?」と訊かれ、 その時に「はい」を選択すると、一度はそのファイルが終了するのですが、 すぐに マクロを含むファイルを開くときに出るメッセージ「セキュリティ警告マクロ マクロ有効 マクロ無効 詳細」が出て、また開こうとします。 保存「いいえ」を選択すると、普通に終了します。 エクセルごとを終了すれば保存「はい」にしても、普通に終了します。 このファイルのみ終了する時、保存の確認で、「はい」を選び、普通に終了するには、何を直したらよいでしょうか? その前に、根本的に間違ってたりしますでしょうか・・・。 よろしくお願いします。 ThisWorkbookに、 Private Sub Workbook_Open() ActiveSheet.Unprotect Password:="(パスワード)" End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveSheet.Protect Password:="(パスワード)" Application.OnTime Now, "保護解除" End Sub 標準モジュールに、 Sub 保護解除() ActiveSheet.Unprotect Password:="(パスワード)" End Sub

  • エクセルシート保護のパスワードが違う!?

    エクセルでシートに保護をかけて、パスワードをつけました。パスワードは忘れないように書き留めておきましたが、保護を解除したくてパスワードを入れたのに「入力したパスワードは間違っています。Caps Lockキーがオフになっていることを確認し大文字と小文字が正しく使われていることを確認してください」と出てしまいます。 パスは間違っていないと思いますが、パス設定のときに入力ミスがあったのかもしれません。(設定時、確認したと思うのですが…)これって、もう、保護を解除する方法はないのでしょうか?大変困っています。

  • Excel シートの保護 VBA

    「データ」、「A」という名称の2つのシートを ブック起動時にパスワードつきで保護したいと考えています。 また、マクロ(VBAのフォーム?)のみで更新できるようにしたいとも考えています。 Dim sheet1 As Worksheet Set sheet1 = Worksheets("データ") sheet1.Protect Password:="pass", _ AllowFormattingCells:=True 上記のやり方があると見たので、 ThisWorkBookに貼り付けて保存し、再起動してみたのですが 普通に、「データ」のシートに書き込めてしまいます。 何もエラーも出ないため、どう考えればよいのかも分かりません。 回答よろしくお願い致します。

  • シートを保護したらマクロがきかない?

    マクロもクエリも全くの初心者です。 仕事で他人が作成したエクセルデータを加工しなければなりません エクセルです 例えばSheet1上で、  セルA1 マクロ設定されており、クリックするとUserFormウィンドウが      開き、入力値を選択できるようになっている      →保護しておきたい  セルB1 文字列が入力されている      →保護の対象外にしたい。  セルC1 数式が入力されている      →保護しておきたい という状況で、 まずやってみた方法は「セルの書式設定」→「ロック解除」などを した上でシート保護をかけたのですが、セルA1のマクロも無効に なってしまいます。 個人的には入力規則等で対応できるかと思うのですが、 マクロの解除は不可能と(会社から)指示がありました。 マクロは不勉強ですので、何とか簡単に変更したいものなのですが やはり VBAコマンドでの(Activesheet.Unprotect?) 変更が必要になるのでしょうか? この機会にVBAに触れておくべきと考え質問さえていただきました。 そもそもアラ40の私に理解できうるものか不安を感じますが・・(汗) EXCELは2007だったと思います。(Verによって異なりますか?) 大変無粋ですが、初心者向きにご回答いただければ幸いですm(__)m

  • パスワードでシート保護したExcelへの画像貼り付けについて

    Excel2000でロックしていないセルに画像を貼り付けようと思います。 パスワードでシート保護しています。 VBAで次のように処理したら画像は貼り付けられました。 しかしパスワード入力を求められ、入力すると画像の挿入後シートは保護されたのですが、パスワードは解除になっています。 パスワード解除にならずに画像挿入できる方法をご教示ください。 さらに挿入後のサイズ変更のVBAも併せて教えて頂ければ助かります。 当方VBAについては全くの初心者です。 Sub 画像挿入()   With ActiveSheet     'シート保護解除     .Unprotect     '画像挿入ダイアログ表示-->画像を挿入     Application.Dialogs(xlDialogInsertPicture).Show     '画像が挿入されたら、保護のロック対象外に設定     If TypeName(Selection) = "Picture" Then       Selection.Locked = False     End If     'シート保護     .Protect DrawingObjects:=False, Contents:=True   End With End Sub

専門家に質問してみよう