Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


116 / 13196 ツリー ←次へ | 前へ→

【79659】実行時エラー1004-Activeメソッドが失敗しました ひなまつり 18/3/1(木) 14:58 質問[未読]

【79662】Re:実行時エラー1004-Activeメソッドが失敗... 亀マスター 18/3/1(木) 20:07 発言[未読]
【79665】Re:実行時エラー1004-Activeメソッドが失敗... ひなまつり 18/3/2(金) 10:14 質問[未読]
【79666】【解決】実行時エラー1004-Activeメソッド... ひなまつり 18/3/2(金) 11:38 お礼[未読]
【79669】Re:【解決】実行時エラー1004-Activeメソッ... 亀マスター 18/3/2(金) 19:44 発言[未読]

【79662】Re:実行時エラー1004-Activeメソッドが失...
発言  亀マスター  - 18/3/1(木) 20:07 -

引用なし
パスワード
   私もWord VBAで似たようなことになった覚えがあるのですが、どうやら、保護ビューを解除した直後にWorkbook_Openイベントが発生し、その時点では保護ビューウィンドウだけを含むコレクションに含まれた状態になっていて、通常のWorkbooksコレクションに含まれない状態になっているようです。そのせいで、普通にWorksheetsを使おうとしても、該当のシートが見つからない状態になっているのではないでしょうか。

保護ビューで開くということは、該当のファイルはインターネット上のものかネットワーク上のものでしょうか?過去にそういったところからダウンロードしてきてファイルの保護が有効になっているなら、ファイルのプロパティからブロックを解除すれば解決すると思います。

何らかの事情で、保護ビューで開くのを止められないというのであれば・・・

Application.ProtectedViewWindows(1).Workbook

で保護ビュー状態のブックを指定できますので、これを使えばなんとかなる気がします。

明日、出勤すれば私が仕事でやっていて対応したときのコードがあるはずなので、わからなければまた質問してください。

【79665】Re:実行時エラー1004-Activeメソッドが失...
質問  ひなまつり  - 18/3/2(金) 10:14 -

引用なし
パスワード
   亀マスターさん
おはようございます。回答をいただき、ありがとうございました。

ご指摘の通りファイルはネットワーク上にあります。
『インタネットから取得したファイルに対して保護されたビューを
 有効にする』のチェックを外したいところですが、セキュリティに
対して非常に厳しい会社のため、保護ビューの状態で使わざるを得ません。

ご教授いただいたコードを入れてみましたが、エラーが出ました。
お手数ですが、ご確認をお願いいたします。


Private Sub Workbook_Open()
 

Dim 開始日 As String
Dim 終了日 As String

Application.ProtectedViewWindows(1).Workbook←ご教授いただいたコード 

開始日 = Format(Worksheets("ABC").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("ABC").Range("G3"), "yyyy/mm/dd")

Worksheets("ABC").Activate

Worksheets("ABC").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日

Worksheets("ABC").Activate
   Worksheets("ABC").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending


開始日 = Format(Worksheets("XYZ").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("XYZ").Range("G3"), "yyyy/mm/dd")


Worksheets("XYZ").Activate

Worksheets("XYZ").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日

   Worksheets("XYZ").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending
         
   
End Sub

【79666】【解決】実行時エラー1004-Activeメソッ...
お礼  ひなまつり  - 18/3/2(金) 11:38 -

引用なし
パスワード
   亀マスターさん、こんにちは。

『インタネットから取得したファイルに対して保護されたビューを
 有効にする』のチェックを外しても良いと許可を得ることが出来ました。
よって、本件は解決ということにさせていただきます。

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

【79669】Re:【解決】実行時エラー1004-Activeメソ...
発言  亀マスター  - 18/3/2(金) 19:44 -

引用なし
パスワード
   解決して良かったですね。
もし、保護状態で続けなくてはいけないようでしたら、上手くいかなかったというところのコードを以下のように書き換えてみてください(前回の私の回答は説明不足でしたね)。

Workbooks(Application.ProtectedViewWindows(1).Workbook.FullName).Activate

116 / 13196 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free