• ベストアンサー

エクセルのマクロについて

エクセルのマクロについてご教示ください。 共有サーバにあるパスワードで保護されたブックを、別のブックの シートからマクロボタンで開くと、当然にパスワードを要求されま すが、ここでメッセージボックスのキャンセルボタンを押すと、 Openメソッドは失敗しました。Workbooksオブジェクトという実行時 エラーが表示されます。  このエラー表示を回避できる方法をご教示ください。  If文で処理しようと試みましたがだめでした。  よろしくお願いいたします。 

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

エラーハンドリングは On Error Resume 文です。 On Error Resume Next Workbooks.Open "~" If Err.Number = vbNormal Then   '--- 正常に開いた場合の処理 Else   '--- 開かなかった場合の処理 End If On Error GoTo 0 '★エラーハンドリング終了

yama711
質問者

お礼

早速のご回答ありがとうございました。 きれいにエラー回避することができました。 まだまだ勉強不足です。 また行き詰った時には質問させていただきます。

関連するQ&A

  • サーバー上のブックを開けない時(エクセルVBA)

    ネットワーク障害などでサーバー上のエクセルブックが開けない時、かなり待たされてから次のメッセージが出ます。 実行時エラー'1004' 'Open'メソッドは失敗しました。'Workbooks'オブジェクト しかもその間、Ctrl-Breakも受け付けてくれません。 正確に待ち時間は計ったわけではありませんが、10分くらいでしょうか。 なんとかこれを回避して、早い時間にエラーメッセージを出してコントロールを戻すことはできないでしょうか? 以下のVBAでオープンしています。 Workbooks.Open Filename:=myFileName, Readonly:=True よろしくお願い申し上げます。

  • エクセル2000のマクロについて再び

    新しいブックを作りさらに他のブックで作成されているシートをコピーして移動するというマクロを作ります。この時、新しく作ったブックの名前がBook1にならないとその時点でマクロのエラーになりなってしまいますが、たまにBook2になってしまうときがあります。必ずBook1になると指定することはできないのでしょうか。 Sheets(Array("sheet1", "sheet2", "sheet3")).Select Sheets(Array("sheet1", "sheet2", "sheet3")).Copy →新しいシートを作成 Workbooks.Open Filename:="C:xxx\○○\△△.xls" Sheets.Copy after:=Workbooks("book1").Sheets(2) →ここで、Book1が存在しないとエラーになってしまう。 お願いします。

  • エクセル マクロについて

    エクセルのマクロについて教えてください。 下記のようなマクロを実行した場合 どのような条件でフォルダ内のファイルを オープンしていくのでしょうか。 ファイルの名前や更新時間などでしょうか? また、名前や更新時間順でファイルを開いていくように するにはどうしたらよろしいでしょうか。 ご回答よろしくお願い致します。 以下マクロ 'オブジェクトを設定する Set ファイルシステム = CreateObject("Scripting.FileSystemObject") '読み込むファイルを1個指定する あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") '親フォルダーを取得する Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder '親フォルダー内の全ファイルに以下の操作をする For Each ファイル In 親フォルダー.Files 'ファイルを開く Workbooks.Open ファイル.Path 'ブック名を記憶する ブック名 = ActiveWorkbook.Name '開いたファイルの伝票(NO)のシートを「全データ」シートの後ろにコピーする ActiveWorkbook.Worksheets("伝票(NO)").Copy After:=ThisWorkbook.Worksheets("全データ") '開いたファイルを閉じる Workbooks(ブック名).Close Next                                                 以上

  • Webサバーに有るExcelのマクロが動かない

    Webサーバに有るExcelファイルを、htmlのリンクから開いて、マクロを実行すると、csvファイルの読込で下記のエラーに成ります 「実行時エラー'1004' 'open'メゾットは失敗しました'Workbooks'オブジェクト'」です。 リンクで開かないで、直接開いて実行すると問題なく動きます。 どうしたら良いのか力を貸してください。

  • ワードのマクロからエクセルシートを開きデータを読み込む

    ワードマクロからエクセルシートのデータを読み込みたいのですが、マクロを実行すると「コンパイルエラー:変数が定義されていません。」というエラーが出てしまいます。変数xlUpで引っかかってるようなんですが、どのように定義すればよいですか? コードは以下です。 Dim Workbooks As Object Dim ecell As Integer Workbooks.Open FileName:="namesheet.xls" ecell = Workbooks("namesheet.xls").Worksheets(1).Range("B100").End(xlUp).Row よろしくお願いいたします。

  • エクセルをインターネットエクスプローラで開いた場合のマクロ

    エクセル2000、Windows2000です。 エクセルのBOOKをインターネットエクスプローラ6.0で開いた場合のマクロの動作について教えてください。 Sheets("Sheet1").Select は、「実行時エラー1004 Sheetsメソッドは失敗しました。Globalオブジェクト」 ActiveWindow.SelectedSheets.PrintPreview は、「実行時エラー1004 PrintPreviewメソッドは失敗しました。Sheetsオブジェクト」 などエラーになってしまいます。 自宅のエクセル2003,IE7.0でやってみても同様でした。 どのように対処すればよいのでしょうか? なお、BOOKをIEで開くのは社内のイントラネットに掲載したエクセルをダウンロードするのではなく、イントラ上でIEで開くためのテストです。

  • サーバー上のブックを開けない時(エクセルVBA)

    以前、同じ質問をしたことがあります。(QNo.3615620) 「ネットワーク障害などでサーバー上のエクセルブックが開けない時、かなり待たされてから次のメッセージが出ます。 実行時エラー'1004' 'Open'メソッドは失敗しました。'Workbooks'オブジェクト しかもその間、Ctrl-Breakも受け付けてくれません。 正確に待ち時間は計ったわけではありませんが、10分くらいでしょうか。 なんとかこれを回避して、早い時間にエラーメッセージを出してコントロールを戻すことはできないでしょうか? 以下のVBAでオープンしています。 Workbooks.Open Filename:=myFileName, Readonly:=True よろしくお願い申し上げます。 」 この時はネットワークに原因があるものと思い込んでおり、いただいた回答もVBAによるpingの発信及び受取りでした。 ところが、この症状が発生している状況で、Pingを行ってもほとんど瞬時に戻ってきました。 またDir関数で該当エクセルファイルを指定しても、直ちにコントロールが戻ります。 どうやら誰かが該当ファイルを排他制御で開いているのが原因の様です。 これを回避し、使えない場合直ちにメッセージを表示しコントロールを戻すことはできないでしょうか。 該当ファイルは使えなくて構いません。 エクセルが砂時計のままで何も受け付けない状態を回避したいのです。 よろしくお願い申し上げます。

  • EXcelのマクロで相対パスでファイルを開く

    Excelでマクロを使って他のブックを開こうとしています。 同じフォルダ内のブックを開くには Workbooks.Open Filename:=ThisWorkbook.Path & "\ブック名.xls" で開く事が出来たのですが、一つ上の階層にあるブックを開きたいときはどのようなコマンドを使えば良いのでしょうか?? お教え下さい。

  • マクロを教えてください

    同じフォルダ内にあるXlsブックのあるSheetのデータを他のBookにコピーして貼り付けて貼り付けた側のBookで加工したいのですがうまくマクロが組めません。 Bookを共有で使っているので困っています。 Sub ワードアート1_Click ' ActiveWindow.ScrollWorkbookTabs sition:=xlLast Workbooks.Open ("販売管理表み.xls") Sheets("在庫一覧").Select Cells.Select Range("A1").Activate Selection.Copy Windows("完成在庫.xls").Activate Sheets("完成在庫一覧").Select Range("A1").Select ActiveSheet.Paste End Sub って書いてみましたが、Workbooks…のところでエラーになってしまいました。(TOT)初心者ですみません。教えてください。

  • エクセルマクロでブック名を検索できない

    エクセルマクロで今開いているブック以外のブック名を取得して編集するマクロを作っていますが、一度他のブックを開かずにエラーメッセージ"価格を検索したいブックを開いて下さい。"を表示させると以降開いたブック名を取得出来ません。 For Each wb In Application.Workbooks s = wb.Name If s <> ActiveWorkbook.Name Then Exit For Else MsgBox "価格を検索したいブックを開いて下さい。" Exit Sub End If Next オブジェクトの解放など調べてみたのですが、初心者でよく解らず困っています。どなたか教えて下さい。

専門家に質問してみよう