エクセル2000、Windows2000です。
エクセルのBOOKをインターネットエクスプローラ6.0で開いた場合のマクロの動作について教えてください。
Sheets("Sheet1").Select
は、「実行時エラー1004 Sheetsメソッドは失敗しました。Globalオブジェクト」
ActiveWindow.SelectedSheets.PrintPreview
は、「実行時エラー1004 PrintPreviewメソッドは失敗しました。Sheetsオブジェクト」
などエラーになってしまいます。
自宅のエクセル2003,IE7.0でやってみても同様でした。
どのように対処すればよいのでしょうか?
なお、BOOKをIEで開くのは社内のイントラネットに掲載したエクセルをダウンロードするのではなく、イントラ上でIEで開くためのテストです。
No.3
- 回答日時:
<br /> 失礼。安易に LocationName を使ったのが失敗でした。<br /> <br /> Sub test(
As ObjectDim sg As String
For Each ie In CreateObject("Shell.Application").Windows
If UCase(Dir(ie.FullName)) = "IEXPLORE.EXE" Then
sg = ie.LocationURL
If Mid$(sg, InStrRev(sg, "/") + 1) = ThisWorkbook.Name Then
Exit For
End If
End If
Next
If Not ie Is Nothing Then
ThisWorkbook.Saved = True '保存しない
ie.Navigate "about:blank"
'ie.Quit
Set ie = Nothing
End If
End Sub
締め切ったあとにまでご回答をいただき誠にありがとうございます。
連休でお礼が遅くなり申し訳ございませんでした。
さっそく試してみました。
Webで開く際、あたらしいIEのウィンドでひらけば
ie.Navigate "about:blank"
ie.Quit
ともにちゃんと動きました。ありがとうございました。
web上のエクセルのアイコンをダブリュクリックしてそのままのIE上で開くと無反応でした。
ご報告いたします。
なんどもありがとうございました。
No.2
- 回答日時:
『?』付きですけど質問のようにも思えなくてちょっと様子見してましたが、一応、反応してみます。
>これもPrintPreview同様、IEでは使えない機能ということですね?
どうもそのようです。エラーが出るわけでもなく、無効化されているような感じですね。
IEで開いたExcelBookをクローズするにはIEに対する操作が必要なようです。
Sub test()
Dim ie As Object
For Each ie In CreateObject("Shell.Application").Windows
If UCase(Dir(ie.FullName)) = "IEXPLORE.EXE" Then
If ie.LocationName = ThisWorkbook.Name Then
Exit For
End If
End If
Next
If Not ie Is Nothing Then
'ThisWorkbook.Save '保存する場合
ThisWorkbook.Saved = True '保存しない場合
ie.Navigate "about:blank"
'ie.Quit
Set ie = Nothing
End If
End Sub
ie.Navigate "about:blank" や .GoHome など、ページを切り替えればよいですが、
excel.exeのプロセスも終了させたい場合は Quit に変更してください。
何度もありがとうございます。
PC内のエクセルをIEで開いた場合はご教示のでうまくいきましたが、実際にイントラネットに掲載してWeb上で開いてみたところ
ie.Navigate "about:blank"
ie.GoHome
ie.Quit
ともに無反応でした。
残念。
No.1ベストアンサー
- 回答日時:
>Sheets("Sheet1").Select
>は、「実行時エラー1004 Sheetsメソッドは失敗しました。Globalオブジェクト」
これはどういう方法で実行させてますか?
シート上のボタンや[Alt]+[F8]からの実行であれば問題ないのではないでしょうか。
VBEからの実行であれば恐らく失敗するでしょう。
多分、ですけどVBEからだとActiveWorkbookが無いと判断されるから(?)
MsgBox ThisWorkbook.Name
MsgBox ActiveWorkbook.Name 'VBEからだとエラー
MsgBox Application.Visible とやってみると理由がわかるかも。
VBEからでもThisWorkbook.Sheets("Sheet1").Select とすれば良いのではないでしょうか。
>ActiveWindow.SelectedSheets.PrintPreview
これは無理なようです。手作業でもできないですよね?
IEの中のExcelメニューの[印刷プレビュー]関連のメニューは根こそぎ消えてますし
IE(7)の印刷プレビューメニューはグレーアウトしてます。
試しに外部から ExecWBメソッドを実行してみましたけどエラーになります。
制限されているようです。
ExcelBookをIEで開いた場合、IEがExcelの機能を使ってBookを開くわけですから
Excel.Applicationの全ての機能を実行できるわけではないと思います。
特にExcelが既に起動済みだったりすると、Window関連に対する設定や操作などは、ややこしくて
制御が大変です。(...だと思います。私が知らないだけかもしれませんが)
ありがとうございます。試してみました。
Sub test01() 'シートのボタンから
MsgBox "ThisWorkbook.FullName= " & ThisWorkbook.FullName
MsgBox "ActiveWorkbook.Name= " & ActiveWorkbook.Name 'VBEからだとエラー
MsgBox "Application.Visible=" & Application.Visible
Sheets("Sheet1").Select
MsgBox "ThisWorkbook.ActiveSheet.Name=" & ThisWorkbook.ActiveSheet.Name
MsgBox "ThisWorkbook.ActiveSheet.Visible=" & ThisWorkbook.ActiveSheet.Visible
End Sub
Sub test02() 'VBEから
MsgBox "ThisWorkbook.FullName= " & ThisWorkbook.FullName
' MsgBox "ActiveWorkbook.Name= " & ActiveWorkbook.Name 'VBEからだとエラー
MsgBox "Application.Visible=" & Application.Visible
ThisWorkbook.Sheets("Sheet1").Select 'VBEからでもThisWorkbook.をつけるとOK
MsgBox "ThisWorkbook.ActiveSheet.Name=" & ThisWorkbook.ActiveSheet.Name
MsgBox "ThisWorkbook.ActiveSheet.Visible=" & ThisWorkbook.ActiveSheet.Visible
End Sub
Sub 終了()
ThisWorkbook.Close (False)
End Sub
終了はシートのボタンからからやってもまったく作動しませんでした。
これもPrintPreview同様、IEでは使えない機能ということですね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- オープンソース OpenOffice Calc basic で印刷プレビューを表示する方法 1 2023/04/15 12:43
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA→IEでtextareaにセル範囲の値
-
Webサイトのurlの保存方法?
-
ファンが急に回転してフリーズ...
-
QuickTime のキーボードショー...
-
パソコン版グーグルマップを最...
-
サイトのショートカットアイコ...
-
VMWare Player 上でフリーズ抜...
-
EdgeでInPrivate上Webページの...
-
エクセルでマクロ使うとフリー...
-
パソコンと体質的に相性が悪い...
-
エクセル固まった時 その作業...
-
ハイパーリンクの中にある履歴...
-
ペイントツール SAIについて
-
IEの表示を定期的に自動更新...
-
Windows10でマイコンピュータを...
-
Internet Exploerについて
-
WindowsサウンドレコーダーをWi...
-
SDカードが読み取れなくなりフ...
-
特定のURLのみを特定のブラウザ...
-
設定でpcとデバイスでbluetooth...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
getElementsByClassName不可
-
エクセルでマクロを使い、多数...
-
VBA→IEでtextareaにセル範囲の値
-
VBAで任意の文字がURLに出現す...
-
エクセルをインターネットエク...
-
Webサイトのurlの保存方法?
-
サイトのショートカットアイコ...
-
EdgeでInPrivate上Webページの...
-
パソコン版グーグルマップを最...
-
Microsoft Edge で InPrivateを...
-
エクセルでマクロ使うとフリー...
-
フォルダのショートカットをバ...
-
エクセル固まった時 その作業...
-
指定されたパスは存在しません...
-
クロームの右上のダウンロード...
-
サイトのショートカットアイコ...
-
pdfファイルの回転を、ページ...
-
VMWare Player 上でフリーズ抜...
-
QuickTime のキーボードショー...
-
特定のURLのみを特定のブラウザ...
おすすめ情報