IEマクロ実行時の不具合について

このQ&Aのポイント
  • IEからマクロを実行した際にExcel表が消える現象が特定のパソコンで発生しました。
  • 現象が解消した原因は、マクロ内の「ScreenUpdating」の記述を削除することでした。
  • ネットでの情報収集では正確な情報が見つからず、Microsoftのサポートページを参照しましたが、解読が難しい状況でした。
回答を見る
  • ベストアンサー

IEからマクロを実行した際の不具合について

IEからマクロを実行した際に、終盤でExcel表がパッと消えてしまう現象が起きました。 現象が起きるのがある特定のパソコンだけで、あれこれ試してみたところ、「ScreenUpdating」の記述を削除したら正常に動きました。 原因と対策をネットでひたすら探しましたがヒットせず、ただひとつだけ「これかな?」という記事があったのですが、英語を翻訳しているもので、イマイチ意味がわかりません; そこでお願いです。 以下のページの意味を解読してみてください。 http://support.microsoft.com/kb/160600/ja ちなみにそのパソコンは、OSはXP、IEのバージョンは不明(現在持ち主が留守で調べられません)Excel2000です。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

そもそも、ScreenUpdating を使う必要があるかどうかですね。 使ってはいけないものがありますね。それは、最初からExcelの画面が動いていない場合や、MsgBox など対話型にする場合や、Window が別の場所に行く場合です。ScreenUpdating =False は、シート枠の中が真っ黒になったりしますね。IEからマクロを実行という意味が良く分かりませんが、IE上で、マクロを使う場合は、メモリが制限されているのだから、どんな動きをするか分かりませんね。Off Line のような本格的なマクロを使うというわけには行かないような気がします。 使ってよいのは、Excelなどの表を上から下とかいうように、特定の範囲でセルをひとつずつ、オブジェクトから、そのプロパティを取得する場合に使うのです。 > Set xRange = Selection  'Set a variable to the active selection > Range("IV65536").Select 'Select another cell in the sheet > xRange.Select       'Select the original range 単に、セルの場所を移動するだけだと思いますが、今さらIE3.0 でもないだろうと思いますし、こんなコードが必要だと思えません。 そのコードは、一旦、右端下隅にセルを移動してファイルを実体化させ、Excel側にメモリを渡すものだと思いますが、あまり関心しない内容ですね。ふつう、ある程度の大きさを持つものなら、それを強制的に大きくする必要はないと思います。 単に、 ActiveSheet.Select Application.ScreenUpdating = True End Sub か、 Application.Visible = True Application..ScreenUpdating = True End Sub としてみたらどうかと思います。 >IEのバージョンは「7」でした。 悪評のIE7は、どうやら最初から最後まで、トラブル続きだったようですから、なんとも言えませんね。

sekkii
質問者

補足

ご回答ありがとうございます!! もうこれ以上回答してもらえないかと諦めていましたのでまるで天使が現れたような気分です♪ まずは補足説明から。 >IEからマクロを実行という意味が良く分かりませんが 社内ネットワークで、あるページに「実行」ボタンが設置してありまして、ボタンを押すと「マクロを含むExcelブック」「結果を表示するExcelブック」「データCSV」が自パソコンに保存され、自動で「マクロを含むExcelブック」がOPENされます。 AUTO OPENになっていますので、自動でマクロが始まるといった流れです。 この保存されたブックをIEを介さずに開けばすんなりいくのですが、IEの実行ボタンから実行すると、「パッと」消えてしまうんです。 ご指摘の通り、MsgBoxやユーザーフォームで対話型にしています。 ScreenUpdatingを使いたい訳は、そのパソコンがとても古くて実行時間がかなりかかる為です。 しかし耐えられない程ではないので、現在は外しています。 なにはともあれWendy02さん! わかりやすい解説ありがとうございました。 不明なコードのご説明もありがとうございました!!スッキリしました! さらに解決策までご提示していただき感謝いたします! 嬉しくて早くお礼が言いたくてまだ試してないので これから試してみますね。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>ScreenUpdatingを使いたい訳は、そのパソコンがとても古くて実行時間がかなりかかる為です。しかし耐えられない程ではないので、現在は外しています。 この部分は、ScreenUpdating を使わないで、逃げる方法があるのです。コードは直せるはずです。 '// Sub Test1() Dim i As Long For i = 1 To 30000  Cells(i, 1).Value = i Next i End Sub '// Sub Test2()  Dim i As Long  Dim Ar(30000) As Long  For i = 1 To 30000   Ar(i - 1) = i  Next i  Cells(1, 1).Resize(30000) = Application.Transpose(Ar) End Sub Test1 は、8分(8分43秒)掛かりました。ScreenUpdating を入れると、約22秒です。Test2は、だいたい平均すると、10分の1秒で完了します。こちらは、XPで、Excel 2003ですが、負荷として、UserForm を立ち上げたり、12MのExcelブックを開けていた状態です。Test2 は、ScreenUpdating は必要ありません。

sekkii
質問者

お礼

2度も回答して頂いてすみません。 とても有難いです! 配列を利用するのですね。こんなに早くなるんですか…。 今回のこのマクロも配列を利用できる部分がありますので参考にさせていただきます♪ ただ、遅くなっている原因はいくつかあって、 ・罫線を引く ・ピボットテーブル作成 ・1つのシートを非表示に ・CSVデータをExcelにコピー&ペースト などです。 先ほど教えていただいたコードは例のパソコンが使用中なため試せていませんがコードは変更しておきましたので後は例のパソコンで実行ボタンを押すだけです。 いろいろありがとうございました! 本当に感謝しています。

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.1

(リンク先に書いてないこと) ScreeUpdating というのは、エクセルのような表(グリッド・コントロール)の書き換え時の描画を速くするため、一時的に表示の更新を止めて(ScreeUpdating=false) 、それから表を書き換えて、その後ふたたび表示を更新する(ScreeUpdating=true)ために使うものです。 そうしないと、1つのセルを書きかえるたびに表全体を再描画するため、たいへん表示が遅くなります。 (リンク先に書いてあること) しかし、IEのバージョンが3.0,3.01では、再表示がうまくできないことがあるので、下の方にある、方法1または、方法2で回避できる。 とのことですが、IEのバージョンが(たぶん)違うので、うまくいくかどうか。。。

sekkii
質問者

お礼

早速のご回答ありがとうございます! ScreenUpdating はなるべく使いたいので 方法2を試してみようかと思ったのですが まだ試せてないです。 方法2は Set xRange = Selection  'Set a variable to the active selection. Range("IV65536").Select 'Select another cell in the sheet. xRange.Select       'Select the original range. を、EndSubの直前に記述するみたいですが、 コメントになっている部分はどういう意味なのか,このコードが何をする命令なのかが不明です。 「終盤」と書いた通り、ScreeUpdating=false では現象は起きず、たぶん=trueで何かが起きてるんでしょうね…。 まだなんとなく、喉につっかえた感じです。

sekkii
質問者

補足

何度もすみません! IEのバージョンは「7」でした。 そのパソコンの隣のパソコンもOS、IE、Excel共にバージョンは同じでしたが 隣のパソコンでは普通に実行できます。 何か設定の違いでしょうか? このマクロはいろんなパソコンから使うので 「方法2」が怖くてできないところです。 変なことにはならないでしょうが、やはり意味のわからないコードは怖いですね…。 というわけで、最初の質問とは違いますが、この現象の解決策がありましたら教えてください!

関連するQ&A

  • IE6に戻すと発生するトラブル

    ttp://support.microsoft.com/kb/927177/ja この方法により、IE7をアンインストールしIE6に戻しました。(再起動済み) しかし、自動更新によりすぐにIE7に戻ってしまうので、それを止めるプログラムをダウンロードしようとしたときに異常に気がつきました。 ・プルダウンメニューの▼を押すとポップアップブロックが作動する。常に許可を選択しても同じ現象が起こる。(ブロックが解除されない ・インターネットオプションが開かない。(一瞬だけ開いて消えている模様 ・コントロールパネルにあるインターネットオプションも開かない。 確認した現象は以上ですが、まだ気が付いていない物があるかもしれません。 仕方が無いのでIE7に戻しましたが、バグの多いIE7ではなくIE6を使いたいので、この現象を解決する方法をお教え頂きたく思います。 ポップアップブロックの設定はインターネットオプションの設定を変ええれば良い等、見当違いの回答はご遠慮願います。

  • windows8 IE10 ハンゲ不具合

    パソコン初心者なので分かりづらいかもしれませんが よろしくお願いします。 パソコンを購入してwindows8 IE10を使っているのですが、 始めは問題なく使えていたハンゲームのパチスロDXとななぱちのパチスロができません。 席に座ってゲームを起動しようとすると『Pachislotdxは動作が停止しました』・・・プログラムの終了 で接続がきれてしまいます。 他のオンラインゲームは今のところ問題ありません(例ハンゲパチンコDX、麻雀4、777townなど) 一応ネットで調べた方法は、試しました。 Microsoftのwindows8トラブル対処法 http://support.microsoft.com/kb/2772010/ja Internet Explorer 用 Flash Player 更新プログラム」も削除してみました はじめは、youtubeの動画を見ていた時に『Internet Explorer は動作を停止しました』と出ていて それでも、見ることはできていました。 現在も動画は見られます。 わかりづらい説明ですが、よろしくお願いします。

  • Internet Explorer 8 (IE8) をアンインストール

    Internet Explorer 8 (IE8) をアンインストールして以前のバージョン (IE6)に戻す方法? 1:プログラムの追加と削除にリストアップされている項目は次の通りです: (1)Windows Internet Explorer8 (2)Windows Internet Explorer8-ソフトウエアの更新 (2-1)Windows Internet Explorer8 更新(KB980182) (2-2)Windows Internet Explorer8 更新(KB982632) (2-3)Windows Internet Explorer8 更新(KB976662) (2-4)Windows Internet Explorer8 セキュリティ更新(KB981332) (2-5)Windows Internet Explorer8 セキュリティ更新(KB971961)   2:マイクロソフト(注2)によれば上記 1(1)を削除する指定です 3:上記 1(2)(2-1)(2-2)(2-3)(2-4)(2-5)についての説明が見当たりません この扱い方についてアドバイスをお願いします   なおパソコンのスペックは(注1)の通りです (注1)OS=WinXP/HomeEdd/SP3 (注2)http://support.microsoft.com/kb/969176/ja

  • IEが壊れてる?

    最初の問題はYoutubeが突然見れなくなりました。 画面が黒いままで、再生の三角のボタンも表示されません。 adobe flashのアンインストールやインストールも 出来ない状態です。バージョン確認のサイトを利用しても バージョンの表示がありません。 問題発生時の http://go.adobe.com/kb/ts_235962_ja-jp の手順通りやってみましたが、現象は変わりません アンインストールに関しては http://kb2.adobe.com/jp/cps/228/228688.html の手順通り行いましたが、 "このインターネットのサイトを開けません。要求されたサイトが 使用出来ないか、見つけることが出来ません"というメッセージが 表示されます。 インストールを行っても http://get.adobe.com/jp/flashplayer/thankyou/activex/?installer=Flash_Player_10_for_Windows_Internet_Explorer&p=Google_Toolbar_6.3&a=McAfee_Security_Scan_Plus の画面もままで何も変わりません また使っていたのはIE8で"初期設定に戻す"を やってみましたが現象は変わりません。IE7に戻して みても問題は解決されません。 また、メールに添付されているpdfファイルを開こうとしても 上と同じく”このインターネットのサイトを・・・”という メッセージが出ます。 Adobeのサポートセンターにも問い合わせをしましたが、 IEが正常に動作していない可能性が高いとのことでした。 ちなみにウィルス対策ソフトはAvira AntiVir Personal を使っており、先日スキャンディスクをしましたが、ウイルス は検出されませんでした。 この場合、どうやって対処すればよいのでしょうか?

  • IEのリンクが起動しない

    イントラネット上のホームページで <A HREF=file://d:\user\XX.xls target="_blank"> のように、ローカルパソコン上のファイルに対して リンクを張っていたのですが WinXPSP2+IE6.0ではリンクをクリックしても起動しませんでした 以前は、WinNT4.0+IE5.5では、リンクが起動していました WinXPのローカルマシンゾーンロックダウンかなと思い http://support.microsoft.com/kb/884222/JA/ の手順でレジストリにExcel.exeを追加しましたが だめでした 何卒ご教授のほど、よろしくお願いいたします。

  • VIsualC++ runtime IE

    他の方と同じような質問になってしまいすみません。 windows7でIEを開こうとしたときに画像のようなアラートが出てきて実行することができません。 下のURLのページを参考にしながら、VisulC++2005~2008をアンインストールしたり、adobeのflashplayerを削除したりしてみたんですが、アラートが常に出続けます。 インターネットオプションをいじろうとしてもその操作ができません。 また、他のブラウザの使用やIEをアップデートしようとしてみたんですが、そもそもネットにつなげないためお手上げ状態です。 解決策をよろしくお願いします。 今は違うパソコンから投稿しています。 http://okwave.jp/qa/q5697285.html https://support.microsoft.com/ja-jp/kb/822521/ja http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11126995176;_ylt=A2RAqabAkkFVuggAlhgU_fN7?pos=1&ccode=ofv

  • Windows Updateの際のエラー

    KB971644という、Vista用のプラットフォーム更新プログラムがインストールできず困っています。 このプログラム自体は結構昔のもので、ずっとできなかったので非表示にしていたのですが、 最近IE9のインストールを試みたもののこちらもできず、上記のプログラムが更新されていないことが 一因と思われたので、再び試みてみましたがやはりできなかった次第です。 インストールボタンを押してパソコンを再起動するところまでは行くのですが 更新プログラムを構成するところのステージ2(3つあるうち)の24%くらいで いつもとまってエラーになってしまいます。 エラーコードは80070020 http://support.microsoft.com/kb/883825/ja このサイトの方法1、方法3、方法4は全てやってみましたが改善されませんでした。 方法2はセーフモードでたちあげたときにWindows Updateが使えなかったため できませんでした。 どなたか回答よろしくお願いします。

  • IEが不調ですがダウンロードできません。

    現象:IEがエラーメッセージなしに開きません。 プロパティをクリックすると「序数455がurlmon.dllから見つかりません」というエラーメッセージがでます。 PCは、Xp pack3 です。 質問番号:2002834の回答者:ryumyaさんの方法で、レジストリ キーの設定を変更しましたが、「このコンピュータには、最新バージョンの Internet Explorer が既にインストールされています。セットアップは続行できません。 」 のエラーメッセージが出てきました。 そのほかに試した方法: FirefoxのUSB版で、netにつながりますので、 1) IE7をダウンロード → インストールが不完全。エラーメッセージ「Windows updateを・・・」 2) IE8をダウンロード → 1)と同様のエラーメッセージ 3) マイクロソフトのCD:XPサービスパック3をインストールしてもだめでした。 4) http://support.microsoft.com/kb/893582/ja をヒントにダウンロードしておいたie6setup.exe で、C:\temp\ie6setup.exe /c:"ie6wzd.exe /d /s:""#E"""をすると、「エラーメッセージ「ダウンロードできなかったものがあります。インターネットに接続しているかどうか・・・」がでました。 対策をお願いします。

  • IEを開いたときのウィンドウサイズが元に戻らない

    Windows XP Pro SP-2 を使用しています。 [タスクバー]上を右クリックすると   ・・・・   重ねて表示   上下に並べて表示   左右に並べて表示   ・・・・ のようなメニューが表示されます。 IE の複数のウィンドウを開いていたとき(他に OE や Excel も開いていたと思います)。 どういうことになるのか興味があったので、[上下に並べて表示]あるいは[左右に並べて表示]を実行してみました。 開いていた複数のウィンドウが“碁盤の目”のように並びました。従がって、各ウィンドウのサイズが小さく表示されました。 それ以来だと思うのですが、パソコンを再起動して IE を起動すると、その小さなウィンドウで開くようになりました。マウスで上下および左右のサイズを大きく設定しても、次回のパソコン再起動すると同じ現象になります。 IE を起動したときウィンドウが(最大ではない)大きいサイズで開くようにするにはどうしたらよろしいのでしょうか?

  • WORD差し込み印刷 図を差込したい

    WORDに、図(jpegデータ)を差込印刷したいです。 データソースはEXCELです。 マイクロソフトのHPでは、英語をそのまま翻訳ソフトを利用した解説で結局うまくできませんでした。 ちなみに下のHPです。 http://support.microsoft.com/kb/909132/ja officeは2003です。 よろしくお願いいたします。

専門家に質問してみよう