Hebikuzure's Tech Memo

2015年3月28日

WinSxS フォルダーのクリーンアップ

Filed under: Windows Tips — hebikuzure @ 12:28 PM

WinSxS フォルダーのクリーンアップ
https://technet.microsoft.com/ja-jp/library/dn251565.aspx

Windows Vista / Windows Server 2008 以降の Windows では、Windows のコンポーネントや更新プログラムのインストールの際に WinSxS フォルダーが「ステージング」領域として利用され、必要なファイルがいったん WinSxS フォルダーにコピーされた後で実際のファイルの置き換えや配置がハードリンクの作成によって行われる動作になっています。この動作についてはサポート技術情報「Windows Vista および Windows Server 2008 で、Service Pack および修正プログラムの適用後にブート パーティションの使用領域が増加する」で解説されており、またこのブログでも以前に「Windows Vista では %windir%¥WinSxS フォルダーが肥大する」という記事で紹介しています。この記事はかなり古い物ですが今でもよくアクセスしされているので、ディスクの空き容量が不足している場合に WinSxS のサイズが大きくなっていることに気づかれる方が多いのでしょう。しかし WinSxS フォルダーにコピーされたファイルはコンポーネントや更新プログラムをアンインストールする際やファイルの破損を修復する際に必要となる場合があり、手動で削除してしまうと Windows の動作に支障が出る可能性があります。

残念ながら Windows Vista 以降の Windows では WinSxS を縮小する手段は用意されておらず、WinSxS のサイズが大きくディスクの空き容量が不足する場合、根本的に解決するには Windows を再インストールする必要がありました。

こうした問題を改善するため、Windows 8.1 / Windows Server 2012 R2 では WinSxS をクリーンアップするツールが用意されました。以下の記事に詳しい情報が掲載されています。

具体的な方法を簡単に解説していきましょう。

縮小可能なサイズを調べる

まず以前の記事でも触れていますが、WinSxS フォルダー内には実際にインストールされているコンポーネントや更新プログラムにハードリンクされている使用中のファイルと、ロールバック (コンポーネントや更新の削除) に備えたあるいバージョンのファイル (未使用のファイル)、一時的なキャッシュ ファイルなどが含まれています。WinSxS をクリーンアップする場合、使用中のファイルは削除できませんが未使用のファイルやキャッシュを削除して容量を削減することは可能です。そこでまず実際のクリーンアップを行う前に、WinSxS がどの程度縮小可能なのかを調べることができます。

現在の WinSxS を調査するには、管理者権限のコマンド プロンプトで以下のコマンドを実行します。

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

コマンドの完了まで少し時間がかかりますが、以下のように使用中のサイズと縮小可能なサイズが表示されます。

dism

表示される項目はそれぞれ以下のような意味を持っています

エクスプローラーによって検出された
コンポーネント ストアのサイズ
Windows エクスプローラーなどで表示した場合の WinSxS の見かけ上のサイズ
コンポーネント ストアの実際のサイズ ハードリンクを考慮に入れた実際の WinSxS のサイズ
Windows と共有 Windows のよって現に利用されているファイルのサイズ
バックアップおよび無効な機能 Windows によって現に利用されていないファイルのサイズ
キャッシュおよび一時的なデータ 一時ファイル
前回のクリーンアップ日 直前の WinSxS のクリーンアップ実行日
再利用できるパッケージの数 削除可能なパッケージ (コンポーネントや更新) の数
コンポーネント ストアのクリーンアップを推奨 クリーンアップを実行した方がよいかどうかの目安

「バックアップおよび無効な機能」と「キャッシュおよび一時的なデータ」が WinSxS で縮小可能なサイズです。

WinSxS のクリーンアップ

Windows 8 以降の Windwos では、WinSxS のクリーンアップを自動的に行うタスクがタスクスケジューラに登録されています。このタスクは Windows の自動メンテナンスの一部として定期的に実行されるように設定されています(Task Scheduler Library\Microsoft\Windows\Servicing\StartComponentCleanup)。

このタスクが実行されると、削除可能なファイルにマークが付けられ、30日後以降に自動的に削除されます。またタスクの実行時間は 1 時間に設定されているため、多数の削除可能なファイルがあると一度のタスク実行ではすべてのファイルが削除されない場合があります。

手動でクリーンアップを行う場合は、管理者権限のコマンド プロンプトで以下のコマンドを実行します。

Dism.exe /online /Cleanup-Image /StartComponentCleanup

このコマンドを手動で実行した場合、ファイルの削除はただちに行われます。また削除可能なすべてのファイルが削除されます。

すべての古いバージョンの削除

WinSxS をより縮小するには、すべての古いバージョンのファイルを削除します。ただしこれを行うと、インストール済みのサービス パックと更新プログラムをアンインストール (ロールバック) することができなくなります。ロールバックする必要がないことを十分に確認してから実行してください。

すべての古いバージョンを削除するには、管理者権限のコマンド プロンプトで以下のコマンドを実行します。

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

実行すると、ただちに古いバージョンのファイルを含むすべての削除可能なファイルが削除されます。

またサービスパックで利用されている領域が、次のコマンドでさらに縮小できます。管理者コマンド プロンプトで実行してください。

Dism.exe /online /Cleanup-Image /SPSuperseded

このコマンドを実行すると、サービス パックのアンインストールはできなくなります。

2015年2月1日

MVP Community Camp 2015 に登壇しました

Filed under: Information — hebikuzure @ 10:14 PM


ブラウザーとセキュリティー – 安全な Web のために
http://www.slideshare.net/hebikuzure/browser-andsecurity2015

昨日 (2015/1/31) に行われた「MVP Community Camp 2015」東京会場で「ブラウザーとセキュリティー – 安全な Web のために」と題した50分のセッションを持たせていただきました。その際に使用したスライドをこちらのブログでも紹介しておきます。

Browser andsecurity2015 from Akira Murachi

セッション中で紹介した推奨図書はこちら

  • 体系的に学ぶ 安全な Webアプリケーションの作 り方
    著者: 徳丸浩
    発売日: 2011年3月1日
    ISBN: 978-4-7973-6119-3
    出版社: ソフトバンククリエイティブ 価格: ¥3,360(税込み)
    [出版社ページ] [Amazon]
  • Hacking:美しき策謀 第2版
    著者: Jon Erickson 著、村上 雅章 訳
    発行日: 2011年10月
    ISBN: 978-4-87311-514-6
    出版社: オライリー・ジャパン
    [出版社ページ] [Amazon]

また紹介した Web 上の資料はこちらです

2015年1月27日

"Project Spartan" で削除される機能 (追加)

Filed under: Internet Explorer — hebikuzure @ 11:20 PM

Inside Microsoft’s New Rendering Engine For The “Project Spartan”
http://www.smashingmagazine.com/2015/01/26/inside-microsofts-new-rendering-engine-project-spartan/

一昨日の投稿で Windows 10 の新しいブラウザー "Project Spartan" では ActiveX や BHO などの COM ベースの拡張機能のサポートが廃止されていると伝えましたが、Microsoft の web platform チームのシニア エンジニア Jacob Rossi さんのインタビュー記事で追加情報が出ていますので、紹介しておきます。

記事によれば、Spartan の EdgeHTML では他に以下のような機能もサポートされなくなるとの事です。

  • VBScript
  • attachEvent
  • X-UA-Compatible による互換表示
  • currentStyle

いずれも Web 標準でない、または Web 標準とは異なる機能 / 仕様ですので、Web 上の相互運用性に重点を置いた Spartan でサポートされないのは当然でしょう。

2015年1月25日

Project Spartan と Windows 10

Filed under: Internet Explorer — hebikuzure @ 8:42 PM

Project Spartan and the Windows 10 January Preview Build
http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx

1月21日 (日本時間1月22日早朝) に行われたメディア ブリーフィングで、今年後半にリリースが予定されている Windows 10 についての新情報が数多く明らかにされましたが、Web ブラウザーについても "Project Spartan" の発表がありました。その場では詳しく分からなかった点を含め、IEBlog に情報が掲載されましたので、それについてまとめておきます。

2117.psatwjpb-image1
(IEBlog から引用)

まず Windows 10 には "Project Spartan" と呼ばれる (コードネームなので実際に "Spartan" という名称になるかどうかはまだわかりません) 新しい Web ブラウザーが搭載されます。このブラウザーは PC、タブレット、2in1、スマートフォンに渡る Windows 10 がサポートするすべてのデバイスに適合するようユーザー インターフェースが新たに設計されており、キーボード/マウス、タッチ、音声認識などの方法で操作することができます。

0435.psatwjpb-image2 8865.psatwjpb-image5
(IEBlog から引用)

Spartan は Web 標準に準拠した新しいレンダリング エンジン (EdgeHTML) を利用し、Web コンテンツを Chrome や Firefox などの他のブラウザーとできるだけ同じようにレンダリングし、同じように動作させることができます。とはいえ企業環境ではまだ古い Web アプリケーション / Web システムを利用している場合も少なくないので、Windows に搭載されるブラウザーには後方互換性も必要です。そのため Spartan ではイントラネット ゾーンのサイト、エンタープライズ モードを指定したサイト (、そしておそらく互換表示を指定したサイト) では従来の Internet Explorer 11 と同じ機能を持つレンダリング エンジン (MSHTML) を利用します。これにより、一つのブラウザーで最新の Web 標準 / 相互運用性のメリットと、後方互換を両立させることができるのです。

02 (Windows 7 / Windows 8.1 上の IE11 の場合)

01 (Windows 10 の Spartan の場合)

なお、EdgeHTML が利用される場合、ブラウザーからサーバーに送信されるユーザー エージェント文字列は、以下のようなものになります (製品版では若干の変更があるかもしれません)

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0

これを見れば、もやはサーバー側で「ブラウザーが何か」を気にするようのはナンセンス、とも思えますね。

また Spartan では カスタム ActiveX コントロールや BHO (Browser Helper Object、COM ベースのブラウザー拡張) はサポートされないようです (Windows 8.1 のイマーシブ IE のように Flash などのメジャーなアドオンは別途何らかの方法でサポートされるでしょう)。そうしたレガシーなテクノロジーに依存するサイト (主に企業内のサイト) のために、Windows 10 では従来の Internet Explorer も利用可能です。ただしこの Internet Explorer も Spartan と同じ方法で、新しいレンダリング エンジン (EdgeHTML) と従来からのレンダリング エンジン (MSHTML) の両方を利用します。

Windows 10 の Internet Explorer (と Spartan) ではさまざまな Web 標準機能が追加される予定ですが、現在最新の Preview Release では以下のサポートが含まれました。それぞれの機能の詳細についてはリンク先を参照してください。

さらに Windows 10 ではこれまでの Windows と異なり、新機能の追加や機能の変更を Windows Update などを通じて随時行い、常に最新の OS として機能するようになります。そのため Spartan (EdgeHTML) についてもリリース後に、他のブラウザーでも採用されているような Web 標準が随時新しい機能が追加されていくことになるでしょう。現在開発中 (従ってリリースに間に合えばの最初から搭載され、そうでなくともいずれ追加される機能) については、以下のページから開発状況を確認することができます。

Internet Explorer Web Platform Status and Roadmap - status.modern.IE

IEBlog の記事では、Web 開発者 (特にコンシューマ向けのパブリックサイトの開発者) に向けて、以下を呼びかけています。

  1. 新しいレンダリング エンジンはどのブラウザーでも同じコードが同じように動作する相互運用性を重視しています。サポートされる標準とそのロードマップを http://status.modern.ie で確認してください
  2. 新しいエンジンでは、公開 Web サイトでの 古い Internet Explorer との後方互換動作はサポートされないので、それに依存しているサイトはモダンな標準に準拠するよう更新してください
  3. 相互運用性の向上には皆さんの助力が必要です。Windows Insider Program または http://remote.modern.ie を利用して、新しいエンジンをテストしてください。相互運用性での問題を見つけたら、ConnectTwitter を使って知らせてください。W3C や他のブラウザー製造者と協力して問題解決に努めていきます

その他のフィードバックも TwitterUserVoice (新機能のリクエスト)、Connect (バグ報告) を通じて行えます。Web 開発者の方も IT プロフェッショナルの方も、ぜひ新しい EdgeHTML を利用し、検証と動作確認を進めてください。


ここからは IEBlog の内容とは直接関係ない、個人的な感想をいくつか記しておきます。

  • Windows 8.1 : Windows 8.1 に Spartan が提供されるかどうかは微妙です。何故ならここまでの情報では、Spartan の動作は Windows 10 で追加される新機能 (例えば Cortana) と密接に関連しているため、Windows 8.1 向けにそれとは無関係の部分だけ切り出すのは難しい可能性が考えられるからです。ただし、Internet Explorer 11 + EdgeHTML の組み合わせて最新の Web 標準に対応させる、というシナリオは十分にあり得ると思います
  • Windows 7 : 上記と同様の理由で、Spartan 自体が提供される可能性は低いと思います。また Windows 7 はメインストリーム サポートが終了している上に Windows 10 への無償アップグレードが提供されることもあり、EdgeHTML が提供されるかどうかも微妙でしょう
  • Spartan での拡張機能 : 公式の情報はありませんが、一部の報道では Spartan は従来の COM ベースの機能拡張 (ActiveX や BHO、ツールバンドなど) ではなく、Chrome や Firefox のようなライトウェイトな拡張を追加する機能が搭載されると言われています。COM ベースの機能拡張をサポートしないのは確定のようなので、この情報は正しいのではと思います
  • 既定のブラウザー : これまでの公式発表からすると Spartan を新しい主力ブラウザーとして扱う姿勢が見えるので、Windows 10 をクリーン インストールした場合は IE ではなく Spartan が既定のブラウザーになると想像しています。ただし以前のバージョンの Windows からアップグレード インストールした場合は、ユーザー選択を優先する趣旨から、アップグレード前の既定のブラウザーがそのまま引き継がれると思います

2015年1月14日

Windows 7 の「メインストリーム サポート」が終了しました

Filed under: Windows Info — hebikuzure @ 11:59 PM


2015年1月14日をもって、Microsoft による Windows 7 の「メインストリーム サポート」が終了しました。終了した「メインストリーム サポート」には以下のものが含まれています

  • 仕様変更、新機能のリクエスト
  • セキュリティ更新プログラム サポート
  • セキュリティ関連以外の修正プログラムの作成の新規リクエスト
  • 無償サポート (ライセンス、ライセンス プログラムおよび、その他の無償サポートを含む)
  • 有償サポート (インシデント サポート、時間制サポート)

「メインストリーム サポート」が終了すると、「延長サポート」フェーズに移行します。Windows 7 の延長サポートは 2020年1月14日まで継続します。延長サポートには以下のものが含まれています

  • セキュリティ更新プログラム サポート
  • 有償サポート (インシデント サポート、時間制サポート)

メインストリーム サポートでも「仕様変更、新機能のリクエスト」「セキュリティ関連以外の修正プログラムの作成の新規リクエスト」には企業向けのサポート契約が必要なので、個人ユーザーの場合メインストリーム サポートの終了ですぐに直接的な影響を受けるのは無償サポートが終了すること位でしょう。Windows 7 はユーザー数も多いため、サードパーティー製の周辺機器やソフトウェアも当面は Windows 7 への対応が打ち切られることはないでしょう。(Windows Vista はユーザー数が少なかったせいか、結構さっくり対応を打ち切った所もありますが)

とは言え今年には新しいバージョンの Windows (Windows 10) がリリースされますし、Windows 7 の初期に購入した PC はそろそろハードウェア的な寿命も考えないとならなくなっているでしょう。現在 Windows 7 を利用していて PC をこれからも利用していく、という場合はこれを機に新しい Windows への移行について検討を始める時期です。

新しい Windows への移行については、以下のようにいくつかの考え方があります

  1. 現在利用している PC を早期に Windows 8.1 Update (現行の最新バージョン) にアップグレード (アップグレード インストールまたは新規インストールしなおし)
  2. Windows 8.1 Update (現行の最新バージョン) の新しい PC を導入
  3. Windows 10 がリリースされたら現在利用している PC をアップグレード (アップグレード インストールまたは新規インストールしなおし)
  4. Windows 10 がリリースされたらプリインストールの新しい PC を購入

現在利用している PC が比較的新しい物 (経年2年くらい以内) であれば「1.」が一番良いと思います。その位新しい PC であれば PC メーカー自体が Windows 8 や Windows 8.1 へのアップグレードをサポートしているか、公式にサポートしていなくともドライバーなど利用に必要なソフトウェアの入手が容易です。もし Windows 10 のリリース後、そちらを利用したくなった場合でも、バージョンが近いほどアップグレードは容易になります。ただし、どうしても現行の Windows 8.1 のユーザー インターフェースになじめそうになく、Windows 10 に期待している、という場合は「3.」も良いでしょう。

現在の PC がある程度経年の高い場合、特に Windows Vista 以前の Windows がプレインストールで、Windows 7 はアップグレードや新規インストールで利用しているという場合は、「2.」または「4.」が現実的な選択肢になるでしょう。もちろん「1.」「3.」も不可能ではありませんが、特に Vista 以前機種の場合は性能がネックになる可能性も考えられますし、またドライバーなどの入手でハードルが高くなる可能性もあります。

また、現在の PC の利用形態によっては Windows PC ではなく Chromebook のような PC や、Androdi タブレット、iPad などのタブレットに移行しても問題ないかもしれません。

Internet Explorer のサポート

Windows に付属する Internet Explorer については、一部で Windows と異なるサポート期限が設けられています

2016 年 1 月 12 日以降、どの Windows についても、インストール可能な最新版の Internet Explorer のみがサポート対象となります。そしてサポートの内容が「メインストリーム サポート」になるか「延長サポート」になるかは、インストールされている Windows のサポートに準じます。サポートされる Windows と Internet Explorer の組み合わせは以下の表のようになります。
※ 最新バージョン以外の Internet Explorer は (Windows のサポート フェーズに関わらず) サポート終了となり、セキュリティ修正を含む修正プログラムの提供や有償無償のサポート (インシデント/時間制) を受けることができなくなりますので、要注意です。

Windows

Internet Explorer

サポート内容 / 期間 (※)

Windows Vista Internet Explorer 9 延長サポート (最長 2017/04/11 まで)
Windows 7 SP1 Internet Explorer 11 延長サポート (最長 2020/01/14 まで)
Windows 8 Update Internet Explorer 11 メインストリーム サポート (最長 2018/01/09 まで)

※ 新しいバージョンの Internet Explorer が提供された場合、サポート期間は変更されます

次期 Windows に搭載される Internet Explorer では、より相互運用性 (他のブラウザーと同じように動作すること) が重視され、後方互換性 (以前のバージョンの Internet Explorer と同じように動作すること) は重視されなくなるようです。古いブラウザーを利用する理由はどんどんなくなっている状況ですから、もし上表より古い Internet Explorer を利用している場合は、すぐに更新しましょう。

2014年12月18日

Internet Explorer とエンタープライズと HTML5

Filed under: Internet Explorer — hebikuzure @ 7:54 PM


この記事は HTML5 Advent Calendar 2014 の 18日目の記事として投稿しています。
Internet Explorer をターゲット ブラウザーとして開発されるようなエンタープライズ環境の Web システム / Web アプリケーションで HTML5 対応はどのように進められるのか、を考えてみました。

「HTML5」というキーワードが多くの人の話題に上るようになってもうずいぶん経ちます。今年は W3C の Recommendation にもなり、ある意味もはや「枯れた技術」化してきているのかもしれません。とは言え、HTML5 の仕様で実現できる機能をフルに使った Web サイト / Web アプリケーションからは程遠い世界もまだまだ世の中には少なくありません。その代表的なものとしてよく挙げられるのは、企業内 (エンタープライズ) 、特に日本のエンタープライズ環境があります。どうしてそうなのかと言えば、これはひとえに Internet Explorer の存在が大きいと言えるでしょう。Internet Explorer は Windows に標準コンポーネントとして含まれるため別途ライセンスやサポートの契約をする必要もありませんし、導入も Windows と一緒にできる、運用管理も Windows の Active Directory や System Center を利用して他の機能と一体的に行える、当然運用・保守・サポートの面倒を見てくれる SIer も多い (というかレベルはともかくできない所はまずない) ……とエンタープライズには都合の良い事が少なくなかったため、多くの場合「業務上の標準ブラウザー」として利用されてきました。

そのためエンタープライズの (イントラネットやエクストラネット) の Web システム / Web アプリケーションは Internet Explorer をターゲット ブラウザーとして開発されました。その傾向は、Netscape Navigator のシェアが急落した 1990 年代末から、Firefox や Chrome が信頼するに足るブラウザーとしての評価を確立する 2010 年頃までの間、特に顕著だったと言えるでしょう。そして非常に不幸な事に、それ以降の時期は日本のエンタープライズでは色々な事情で IT 投資が抑制される傾向にあり、Internet Explorer (特に Internet Explorer 6) をターゲットにした Web システム / Web アプリケーションは現時点でも延命している物が非常に多くなっています。

ところがそうした保守的な (特に日本の) エンタープライズの思惑とは異なり、Microsoft は Internet Explorer の開発方針を転換していきます。Windows Vista に含まれた Internet Explorer 7、Windows 7 に含まれた Internet Explorer 8 までは (タブ ブラウズなどの) 一定の機能強化は行うものの基本仕様は大きく変更されていません。しかしその後、Internet Explorer 9 の開発で方針が大きく変わります。世の中で言えば iPhone がヒットして、Android もそれに続き、(Windows Mobile などで Microsoft がやろうとしてもなかなか実現しなかった) モバイル デバイスの普及が大きく進み、当然そうしたモバイル デバイスからの Web アクセスが急増し、PC の世界でも Chrome や Firefox のシェアが増え、そして Web の新しいテクノロジーについて HTML5 を含めて標準化の機運が大きく盛り上がっていたタイミングです。

Internet Explorer 9 では、技術的な課題として「相互運用性 (interoperability)」が大きく取り上げられます (もちろんそれ以外にパフォーマンスや堅牢性、セキュリティも大きな課題でしたが)。そこでの「相互運用」の対象となるのは当然 Chrome や Firefox や Safari といった他のブラウザーであり、HTML5 を始めとする Web 標準です。IEBlog に "Web standards" や "interoperability" というキーワードが頻繁に登場するようになるのもこの頃からです。実際に 2011 年 3 月にリリースされた Internet Explorer 9 は HTMLのレンダリングや CSS の解釈、JavaScript の動作などでそれまでのバージョンとの後方互換性より、Web 標準に基づく相互運用性に重きが置かれた作りになりました。また今までの例とは異なり Windows に含まれない独立したバージョンとなったのも、Microsoft の意欲をうかがわせています。

その方向性はその後の Internet Explorer 10 (Windows 8 の標準ブラウザー)、Internet Explore 11 (Windows 8.1 の標準ブラウザー) でも加速されており、Web 標準に沿った動作は他のブラウザーとの相互運用性がより高くなっています

このように Microsoft は Internet Explorer を他のブラウザーと同等に動作し機能する Modern ブラウザーとして強化していく方向であるのに対して、先に述べたような古い Web システム / Web アプリケーションを延命させているようなエンタープライズではそうした方向は歓迎されていないようにも見えます。Internet Explorer のバージョンが更新されるごとに、動かなくなる Web システム / Web アプリケーションが発生し、それにどう対処させるのか苦慮している所は確かに少なくないでしょう。

(後ほど続きを書きます)

2014年12月11日

12月の Office 更新プログラムインストール後、VBA でエラーが発生する

Filed under: Microsoft Office — hebikuzure @ 5:02 PM

2014年12月にリリースされた Office の更新プログラム MS14-082 をインストールした後、例えばマクロが有効な Excel ブックを開いた時に「Microsoft Visual Basic」の実行時エラーダイアログが表示され、シート上に挿入されているコントロールが操作できない状態になる場合があります。

手元ではエラーが発生しなかったので、どのようなエラー ダイアログが出るのか確認したい方は「山市良のえぬなんとかわーるど」の記事を参照してください

この現象は、次のようなシナリオで発生します。

  1. シートにフォームのコントロールを挿入した Excel ブックを作成します
  2. フォームのコントロールが挿入されると、コントロールのモジュール (MSForms、プログラム名としては fm20.dll) が呼び出されます
  3. 次回の挿入に備えてコントロールのモジュールのキャッシュが作成されます。このキャッシュは %temp%\Excel8.0 フォルダーに、拡張子 .exd で作成されます
  4. 更新プログラム MS14-082 をインストールすると、MSForms (fm20.dll) が更新されます。しかし作成済みのフォームのキャッシュは削除も更新もされません
  5. MSForms のコントロールを操作する VBA が呼び出されると、実際のコントロール (更新済み) とキャッシュ (未更新) の間でバージョン不整合となり、エラーが発生します

回避策

コントロールのキャッシュは手動で安全に削除する事ができるので、フォームを利用できる Office アプリケーションをすべて終了してから .exd ファイルを削除すれば、問題は回避できます。以下の手順で削除してください。また更新プログラムのインストール前に事前にこの手順を行っておくことで、エラーの発生を予防できます。

  1. フォームを利用できる Office アプリケーションをすべて終了します。またはコンピューターを一度再起動します
  2. [Win キー] + R で [ファイル名を指定して実行] を呼び出します
  3. [名前] ボックスに %temp% と入力して [OK] をクリックします
  4. %USERPROFILE%\AppData\Local\Temp\ フォルダーが開くので、Excel8.0 フォルダーを探します
  5. 見つかったら Excel8.0 フォルダーを開き、その中のファイルをすべて削除します (Excel8.0 フォルダーごと削除しても問題ありません)

参考

2014年11月30日

Internet Explorer の古いバージョン (IE9/10) をダウンロードする方法

Filed under: Internet Explorer — hebikuzure @ 4:29 PM

以前にも紹介したように、Internet Explorer のサポート ライフサイクルが変更され、2016年 1月12日以降、最新バージョン以外の Internet Explorer のサポートが終了します。その関係だと考えられますが、Windows 7 用や Windows Server 2008 R2 用の Internet Explorer 9 /10 のインストール パッケージを入手しようとしても、通常の Internet Explorer の Web サイトダウンロード センターでは見つからなくなっています。

開発段階での互換性検証や動作確認であれば modern.IE にある仮想マシンを利用するなどの方法がありますが、例えば既存のクライアント マシンのリプレースで他のマシンと揃えるために敢て古い Internet Explorer をインストールしなければならない場合など、ローカル マシンに直接インストールしたい場合もあるでしょう。そのような場合、Microsoft Update カタログを利用すると、古いバージョンの Internet Explroer を入手することができます。

手順は以下の通りです。

  1. Microsoft Update サイト (https://catalog.update.microsoft.com/v7/site/Home.aspx) を開きます
    ※ Internet Explorer 11 で Microsoft Update サイトにアクセスすると、機能が正しく利用できない場合があります。Internet Explorer 8 で正常に利用できることを確認していますので、必要に応じて新しいバージョンの IE のアンインストールを行ってから、Microsoft Update サイトにアクセスしてください。
  2. Microsoft Update サイトにはじめてアクセスする場合、アドオンのインストール (または実行の許可) を求められますので、インストールまたは許可をします
  3. [検索]ボックスに "Internet Explorer 9" などと入力します
    キャプチャ
  4. 検索を実行すると、検索結果の中に「Windows 7 用 Windows Internet Explorer 9」など、目的のインストーラーが見つかります。
    キャプチャ
    「Internet Explorer 9」で検索した結果の一部

    キャプチャ
    「Internet Explorer 10」で検索した結果の一部

  5. 入手したいバージョンのインストーラーの行で右側にある [追加] ボタンをクリックします
  6. [バスケットの表示] の後ろに追加したプログラムの数が表示されるので、[バスケットの表示] をクリックします
    キャプチャ
  7. 選択してバスケットに入っているプログラムが一覧表示されます。[ダウンロード] をクリックします
    キャプチャ
  8. [ダウンロード オプション] が表示されます。[参照] をクリックしてダウンロードする場所 (フォルダー) を選択し、[続行] をクリックします
    キャプチャ
    ※ここではデスクトップを指定しています
  9. [ライセンス条項] が表示されますので、[同意します] をクリックします
  10. ダウンロードの進行状況が表示されます。完了するまで待ちます
    キャプチャ

    完了したら [閉じる] をクリックします
    8e637e458393

  11. 指定した場所にフォルダが作成され、その中にプログラムがダウンロードされています
    キャプチャ
    ※言語パックも一緒にダウンロードされました

2014年11月20日

X-UA-Compatible の利用方法

Filed under: Internet Explorer — hebikuzure @ 11:15 PM

How to Use X-UA-Compatible
https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible

一つ前の投稿で、次期 Internet Explorer では X-UA-Compatible によるドキュメント モードのの指定が無効になることを紹介しましたが、mdern.IE のコンテンツでその X-UA-Compatible の利用方法についての記事がありましたので、私訳して紹介しておきます。


X-UA-Compatible の利用方法

Internet Explorer では X-UA-Compatible META タグまたは HTTP ヘッダーを利用して、どのバージョンの描画エンジンでページをレンダリングするかを指定できます。特定のバージョンを指定することも、’IE=edge’ という値を指定して最新のバージョンを指定することもできます。この互換モードの背景となっている考え方は、モダンな標準に対応していない Web サイトやアプリケーションを改修するまでの間も継続して動作させようということと、ユーザーが最新のバージョンのブラウザーにアップグレードできるようにしようということです。

特定のバージョンの互換モードを指定するための最も一般的な方法は、ページの先頭に X-UA-Compatible META タグを挿入することです。これには http-equiv META を利用し、"X-UA-Compatible" 値と content で IE のバージョンを指定します。パーションを ‘IE=edge’ に設定すると、Internet Explorer に最新のエンジンでページをレンダリングし JavaScript を実行するよう指定したことになります。

<meta http-equiv="X-UA-Compatible" content="IE=edge">

‘IE=edge’ を指定することは最善の方法です。なぜならこれにより Internet Explorer が常に最新のエンジンを利用することが保証されるからです。最新の Internet Explorer には最新のセキュリティ更新と新機能のサポートが含まれています。また最新のバージョンはもっとも高速なバージョンでもあります。

何らかの理由で Web サイトやアプリケーションが最新の標準準拠の動作では問題を生じる場合、以前のバージョンの Internet Explroer を指定することもできます。例えば、アプリケーションがイベント ハンドラーをバインドするのに addEventListener ではなく attachEvent を利用している場合、アプリケーションを改修するまでの間 ‘IE=8′ を指定すればよいでしょう。こうした JavaScript のエラーは F12 開発者ツールのコンソールで確認できるでしょう。ただしこのような問題を残しておくのはアプリケーションにとって決して最善の方法ではありません。アプリケーションがWeb 標準の進歩から大きく取り残されてしまう危険を孕んでいます。こうした互換性は将来にわたってサポートされると思うかもしれませんが、最終的には古いバージョンへのサポートは打ち切られます。

X-UA-Compatible_500x164

もし X-UA-Compatible META タグを利用するのであれば、ページの HEAD タグの中のできるだけ最上部に配置した方が良いでしょう。Internet Explorer はマークアップの解釈をまず最新のバージョンのエンジンを使って開始します。Internet Explorer は X-UA-Compatible META タグを見つけると、指定されているバージョンのエンジンを使ってやり直します。この動作はブラウザーがコンテンツの解析を中止してやり直すためパフォーマンスに影響します。

よりよい方法は X-UA-Compatible HTTP ヘッダーです。Internet Explorer がコンテンツの解析を開始する前にどのエンジンを利用すればよいか指定するため、応答ヘッダーにディレクティブを追加できます。これは Web サイトのサーバーを構成する必要があります。Internet Information Server では管理コンソールでカスタム HTTP ヘッダーを追加することができます。

また ASP.NET の web.config でカスタム HTTP ヘッダーを追加することもできます。

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-UA-Compatible" value="IE=edge" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

HTTP ヘッダーは Web アプリケーションのコードでアプリケーションからのレスポンスに追加することもできます。ASP.NET では、AddHeader メソッドを使ってレスポンスにカスタム ヘッダーを追加できます。次のコードはプログラムで X-UA-Compatible ヘッダーを追加する方法を示しています。

HttpContext.Response.AddHeader("X-UA-Compatible", "IE=edge");

X-UA-Compatible は、サイトが最新の標準と互換性が無い場合に、Internet Explorer に以前のバージョンのエンジンの利用を強いるための非常に役立つ指定です。また IE に以前のバージョンの動作を指定できるとは言っても、古いバージョンでのテストは行うべきです。互換モードを実際のバージョンと混同してはなりません。アプリケーションが以前のバージョンでのテストを必要としているのであれば、無料の仮想マシンが Mordern.ie で利用可能です。他にも Modern.ie では、一般的な互換性の問題を識別するための、無料のサイト検査も利用できます。

Web アプリケーションの更新を怠ることの言い訳として、アプリケーションを X-UA-Compatible に依存させてはいけません。細目な更新をすれば単純な変更でアプリケーションの寿命を数年延長できます。X-UA-Compatible による指定は、アプリケーションを更新するまでの間、最新の Internet Explorer で動作させるためのツールです。

2014年11月18日

徐々に明らかになる次期 Internet Explorer の新機能

Filed under: Internet Explorer — hebikuzure @ 6:37 PM

Living on the Edge – our next step in helping the web just work
http://blogs.msdn.com/b/ie/archive/2014/11/11/living-on-the-edge-our-next-step-in-interoperability.aspx

11月のセキュリティ更新の公開と時を同じくして、Windows 10 Technical Preview新しいビルド (Build 9879) もリリースされました。このビルドに含まれている Internet Explorer では次期バージョンで実現されるさまざまな変更や新機能の一部が盛り込まれています。それらについて簡単にまとめてみました。

"living" Edge ドキュメント モード

この変更は多くの Web サイト / Web アプリケーションの運営者・開発者にとって影響が大きいでしょう。既に Internet Explorer 11 以降「ドキュメント モード」は非推奨とされていましたが、次期バージョンでは公開されているインターネットのサイト (インターネット ゾーンのサイト) はすべて Edge モード (Internet Explorer の最新のモード) でレンダリングされるようになり、サーバー ヘッダーや meta タグの X-UA-Compatible は無視されます。

例外としてドキュメント モードが有効になるのは以下の場合です

  • イントラネット ゾーンのサイト
  • Microsoft から提供されている「互換表示リスト」(CV List) で指定されている場合
  • Enterprise Mode で指定されている場合

3番目の Enterprise Mode で指定されている場合というのは一つ前の記事で紹介した、Enterprise Mode Site List Manager ツールを利用したドキュメント モードの指定の事です。

この変更に対応するため、現在 X-UA-Compatible を利用してドキュメント モードを指定して動作させているインターネット上に公開している Web サイト / Web アプリケーションは、次期バージョンのリリース (2015年後半??) までに、最新の Internet Explorer のネイティブなモード = Edge モードで動作するよう、サイト / アプリケーションの動作確認を行い適切な改修を行う必要があるでしょう。特に注意が必要なのは、さまざまな方法でブラウザーの種別判定を行い、Internet Explorer には X-UA-Compatible を利用してドキュメント モードを指定したページを返しているようなサイトです。こうしたサイトでは、Internet Explorer も Chrome や Firefox と同様に扱い、どのブラウザーにも可能な限り単一のページを返すようにするべきでしょう。

新しい機能

Build 9879 の Internet Explorer では、status.modern.ie で In Development となっていた機能のいくつかが初期的に実装されています。

実験的機能 (Experimental Features)

アドレス バーに about:flags と入力することで、実験的機能の設定ページを呼び出せるようになりました。現在利用可能な設定は次のスクリーンショットのように 3 つだけです。

キャプチャ

この内「Enable Experimental Web Platform Features」は、新しく追加される機能をどの程度有効にするか設定するものです。Edge モード (新しい IE のネイティブ モード) にはこれから多数の変更が追加されていくのですが、すべての変更をすべての Windows 10 Technical Preview ユーザーに同時に適用するのではなく、無作為に選ばれた一部のユーザーに徐々にロールアウトする予定とされています。この設定を Automatic にすればその徐々にロールアウトするスケジュールに則って適用されます。Enabled にすると、追加された新機能はすぐに利用可能になります。これは新機能を一刻も早くテストしたい開発者や管理者向けの設定です。Disabled にすると新機能は適用されず、IE11 互換の動作となります。

フィードバック

新しいバージョンの Internet Explorer へのフィードバックは、ツールバーの Smile マークから送信できます。

キャプチャ

ただし現在のバージョンで Send a frown でフィードバックを送信すると、フィードバックが HTTP で送信されるようです。フィードバックにはユーザーの電子メールアドレスや閲覧中のページの URL が (ページを HTTPS でアクセスしていた場合でも) 含まれるので、場合によっては適切でない情報の漏洩に繋がる可能性があるので要注意です。

Older Posts »

Shocking Blue Green テーマ. WordPress.com で無料サイト・ブログを作成.

フォロー

新しい投稿をメールで受信しましょう。

現在1,133人フォロワーがいます。

%d人のブロガーが「いいね」をつけました。