掲載数4,599件
メールアドレスを入力
※初めての方も利用できます
 
 パソコンQ&Aの新着情報等を配信します
 何でもパソコン110番とは 購読解除
 
 
  
ヒートシンク付き   メディアプレイヤーからスマホに音楽を取り込む   ブリッジ接続 右クリック 出ない   カナヘンカン   迷惑メール 消せない   エクセル 間違えて消さない   odn hotmail 送信できない   スマホ画像ダウンロード方法   地図画面をコピーする   パソコンからSDカードへコピーの仕方   word 2010 文字数 行数   メッセージング インターフェイスによって原因不明のエラーが返されました 2002   webページが印刷できない   ワード2010 文字数設定   babylon削除   パソコン画面表示   sdからcd-r wmp   スマホ マクロ   cd−RWしょうきょ   パソコン 急にシャットダウン   babylon 削除   キーパッドの音を消す   ファイルの順番の変え方   音楽 SDカード 車 取り込み 方法   plugfree network とは   スマホ エラー   地図をコピー   アルファベット 全角   スマホ 一部分 反応しない   ATOM0003E認証に失敗   
質問No 880 VBAで読取パスワードの有無を認識したい

投稿者
愛知県 HEROさん
投稿日時2007年8月4日0時0分
OSWindowsXP
質問分類Excelについて
質問いつも勉強させて頂いております。
昨今、情報漏洩・流出が騒がれているおり、ExcelVBAにて自フォルダー内の
ファイル名・サイズ・種類・更新日をリストアップするマクロを作りました。
そのリストに「読取パスワード」が設定されているか?否か?の区分も表示したい
のです。
方法として、1)開いてみて、開けるか?パスワード要求されるか?の認識をする
のか? 2)開かずとも、読取パスワードの有無を認識できるのか?
それぞれ、その方法は?また他に簡単な方法があるのか?
是非、ご伝授願います。
アクセス数 1463

この質問の見解受付は終了しております。

見解は「参考になった」の数が多い順に並んでいます。


兵庫県yuhkiさん
投稿日時2007年8月4日0時0分
見解マクロ初級者の兵庫yuhkiです。
ADOといういわれるものを利用してファイルを開かずにパスワードの有無を
チェックします。
標準モジュールに以下のマクロをコピーしてください。
(チェックするためのファイルと同じフォルダにあるファイルをチェックして
いきます)

Function open_ado_excel(myBook As Variant) As Long

Dim myLink As String
Dim cn As Object

On Error Resume Next
Set cn = CreateObject("adodb.connection")
myLink = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & myBook & ";" & _
"Extended Properties=Excel 8.0;"
cn.Open myLink
open_ado_excel = Err.Number
On Error GoTo 0

End Function

Sub close_ado()

Dim cn As Object

On Error Resume Next
cn.Close
Set cn = Nothing
On Error GoTo 0
End Sub

Sub myPasswordCheck()

Dim myFile As Variant
Const myError = -2147467259

myFile = Dir("*.xls")
Do Until myFile = ""
If open_ado_excel(myFile) = myError Then
MsgBox "パスワードが設定されています"
Else
MsgBox "パスワードはありません"
End If
myFile = Dir()
Loop
close_ado

End Sub

myPasswordCheckを実行してください。
ファイルをチェックするごとにメッセージが表示されます。
メッセージを表示させる部分をご希望の処理に変更してみてください。
ではでは。

参考になった1参考になった方はボタンを押してください
つぶやく
この見解へのお礼を投稿する(質問者以外でも投稿できます/登録不要)


大阪府totoさん
投稿日時2007年8月4日0時0分
見解『2)開かずとも、読取パスワードの有無を認識できるのか?』
出来るかどうかわかりません。
読み取り専用の属性は比較的簡単に認識できますが、読取パスワードが設定
されているかどうかの判定は今のところ私にはできませんでした。
Excel2002での確認です。
開いて、パスワードのダイアログボックスを表示させ、キャンセルボタンを
押すことにより、発生したエラーの処理を利用して、旗をつける方法が比較的
簡単だと思いますが、開いたファイルは保存せず閉じます。
ファイル名は、フルパスで取得していると考えています。
「読み取りパスワード」が設定されているファイルが多い場合は、時間がかかる
かも知れません。
「書き込みパスワード」だけが設定されているファイルを読取で開くと、読取
パスワードが設定されているファイルのみ旗をつけることになります。

参考になった0参考になった方はボタンを押してください
つぶやく
この見解へのお礼を投稿する(質問者以外でも投稿できます/登録不要)

運営情報  利用規約  プライバシーポリシー
Copyright(C)2000-2012 nan-paso.jp (当HPおよびメルマガ上に掲載された記事を許可なく転載又は引用することを禁じます)