UWP版Office(Excel)

最近の Office のプリインストール環境は UWP 版 Office(ストアアプリ)がインストールされているケースがあるようです。

UWP 版 Office は COM の公開方法が Desktop Bridge 向けの新しい仕組みが採用されています。

COM Server and OLE Document support for the Desktop Bridge
https://blogs.windows.com/buildingapps/2017/04/13/com-server-ole-document-support-desktop-bridge/

このため、レジストリから Excel.Application を探しても見つからないが、COM オブジェクトは生成できるという不思議な状態になっています。

興味のある方は上記の記事を参照しつつ、UWP 版 Office のインストール先の AppxManifest.xml を覗いてみましょう。

 

なお、今のところ、管理者権限で実行したプロセスからは Excel.Application といった ProgID から COM オブジェクトを生成できないようです。
これが仕様による制限なのか、不具合なのかは不詳です。
CLSID を直接指定すると生成できるという情報(MSDN フォーラム)もありますので、必要な方はそちらも検討してください。

 

管理者権限で Excel をオートメーションで利用されている方は以下のいずれかになります。

  • 管理者権限で実行しないで済むように運用や設計を見直す
  • UWP 版 Office をアンインストールして、従来のデスクトップ版 Office をインストールし直す

Microsoft ストア アプリ版 Office 2016 から、デスクトップ アプリ版 Office 2016 に入れ替えることはできますか。

はい。Microsoft ストア アプリ版 Office 2016 をアンインストール後、マイアカウント ページからデスクトップ アプリ版 Office 2016をインストールすることができます。

https://www.microsoft.com/ja-jp/office/setup/2016pipc/faq.aspx より)

Win10 1607(Anniversary Update)とD&D

Technet blogsにこんな記事が掲載されていた。

「資格情報ダイアログが表示されると、ドラッグが開始できなくなる問題について」
https://blogs.technet.microsoft.com/askcorejp/2016/09/14/cannot-drag-on-an-application-with-windows-10-anniversary-update/

 

この記事によると、Anniversary Update を当てた Windows 10、つまり Win10 Ver1607 において、資格情報ダイアログが表示されるようなことがあると、そのプロセスではドラッグが開始できなくなるそうだ。

手元で実験してみると、確かに、.NET の DoDragDrop メソッドを呼んでも何も起きなくなる
自前で MouseDown から MouseMove、MouseUp とドラッグ&ドロップを実装しているのであれば影響しないのかもしれないが、DoDragDrop メソッドを使っていればこの不具合に遭遇しうる。
そして、現状の回避策はプロセスの再起動しかない。

もっとも、資格情報が表示されるケースとなると、ユーザーが指定した任意のパスにアクセスするロジックを持つか、アプリが表示したコモンダイアログでユーザーがそういったパスを入力した時なので、発生現場は限られるのかもしれない。

(ファイラー機能を持つアプリは死亡率が上がりますが…)

Windows 10 Technical Preview における .NET 3.5 の扱い

ご注意:Windows 10 は Technical Preview というプレリリースソフトウェアの段階です。製品版までの間に仕様変更が行われる可能性が高く、この記事はあくまで現時点の状態について語るものです。この記事の内容を信じて行動した結果、最終的に被害・損失などにつながったとしても筆者は保証しません。

 

Windows 10 Technical Preview の現状を確認する意味で Hyper-V 上にクリーンインストールしました。
個人的に気になっていた、.NET Framework 3.5 の扱いですが、Windows 8/8.1 と同様のようです。
つまり、デフォルトではインストールされておらず、インストールを選ぶとオンラインからダウンロードしようとする振る舞いのままと言うことです。

image

image

image

 

あえて、ネットワークアダプタを無効にすると失敗します。
(dism を使う方法がまだ有効かは試していません)

 

このまま方針が変わらなければ、「.NET Framework 2.0 ~ 3.5 ベースのアプリはインストールしただけでは使えない」となります。(Windows 8/8.1 も同様)
Windows 8/8.1 には正式対応していないが、Windows 10 のタイミングでは何とかしたいというベンダーの方々は、.NET Framework 4 以上への移行を計画的に進めた方が良いでしょう。

(オフラインの環境だけど使いたいというエンドユーザーに説明して、dism コマンドを使ってもらうのは大変ですし、使えないクレームは自分たちベンダーに来るということを考えると、移行は必要でしょう)