ここから本文です

VBAのエラー表示変更はできますか。

yai********さん

2015/7/2321:51:31

VBAのエラー表示変更はできますか。

下記のコード機能は、

エクセルファイル内の「ボタンA」を押すと,セル「C4」に記載されたアドレス
の中にあるフォルダ内のファイル全てに、セル「C8」に記載したパスワードを設定
できる機能です。
そして「ボタンA」でパスワード設定されたファイルのパスワードは、
「ボタンB」を押すと、セル「C12」に記載されたパスワードを読み取り、
全て変更できるという機能です。
・「ボタンA=旧パスワード」=セル「C8」に記載されたパスワードを設定できる
・「ボタンB=新パスワード」=「ボタンA」でパスワード設定されたファイルを、
セル「C12」に記載されたパスワードへ変更設定できる
※つまり「ボタンB」は、「ボタンA」で設定された旧パスワードを
新パスワードに変更できる。

今回の質問は、
旧パスワードが設定されている状態で、新パスワードへ変更したい状況で、
①C8に旧パスワードを入力。
②C12に新パスワードを入力。
③「ボタンB=新パスワード設定ボタン」を押す。
この際に、旧パスワードが一致しない場合に、エラーメッセージ「×400」と
出てしまいます。その場合に「パスワードが一致しませんでした。」と
表示させるにはどうしたらいいでしょうか。

Sub test2()

Dim tarFld As String, Pass As String, fName As String

Dim myB As Workbook, tarB As Workbook, i As Integer

Application.DisplayAlerts = False

Application.ScreenUpdating = False

Set myB = ThisWorkbook

tarFld = myB.ActiveSheet.Range("C4")

OldPass = myB.ActiveSheet.Range("C8") '既に設定されているパスワード?(123)

NewPass = myB.ActiveSheet.Range("C12") '新しく変更したいパスワード(456)

If tarFld = "" Then MsgBox "フォルダが指定されていません。"

fName = Dir(tarFld & "\*.xls")

Do While fName <> ""

'既にパスワードのかかっているファイルなら、パスワード指定しないと開かない気がします

Workbooks.Open tarFld & "\" & fName, ReadOnly:=False, Password:=OldPass

Set tarB = ActiveWorkbook

tarB.SaveAs Filename:=tarFld & "\" & tarB.Name, Password:=NewPass

tarB.Close False

Set tarB = Nothing

fName = Dir()

i = i + 1

Loop

Application.DisplayAlerts = True

MsgBox "フォルダ:" & tarFld & vbNewLine & i & " 件 のファイルを処理しました。"

End Sub

閲覧数:
67
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

jun********さん

2015/7/2407:45:35

On Error Resume Next

この構文を使うしかないと思います。これは、エラーが出たら無視して次に進むという意味です。

Err.Number 'エラー番号
Err.Description 'エラーメッセージ

上記の構文で、エラー番号、エラーメッセージが得られますので、番号とメッセージが該当のものであれば、Msgboxで表示させて終了するという処理にします。

ただし欠点はあります。それは、他のエラーが出ている場合でも、無視されてしまうのです。もしこれを仕掛けるのであれば、完全にバグを潰してからが無難です。

質問した人からのコメント

2015/7/24 21:03:24

回答ありがとうございました。
色々と試してみたのですが、上手くできなくて、
もうしばらく試してみたいと思います。

ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる