2017 年 3 月のセキュリティ更新プログラム MS17-014 (KB3178690) を適用後、Excel 2010 でクラッシュやハングが発生する

Office 開発 サポート チームの中村です。 2017 年 3 月 15 日 (水) (日本時間) に公開された更新プログラム MS17-014 (KB3178690) を適用後、Excel 2010 で特定の操作を行うと Excel がクラッシュしたり、応答なしになる現象についてご案内します。   対象の更新プログラム タイトル : MS17-014: Description of the security update for Excel 2010: March 14, 2017 アドレス : https://support.microsoft.com/ja-jp/help/3178690   2017/3/21 Update 1. 現象 の発生シナリオ b. の詳細と再現手順の例を記載しました。 3. 状況 に現在の状況を記載しました。 4-4. 回避策 を追記しました。 5. 関連情報…


Office リボンをカスタマイズ – パート3 – (VSTO ビジュアルなデザイナーでカスタマイズ)

こんにちは、Office 開発 サポート チームの中村です。 今回も、リボンのカスタマイズ手順について解説していきます。今回の記事では、パート 1 で紹介した「c. VSTO からビジュアルなデザイナーを用いてカスタマイズを行う」 について紹介したいと思います。前回と同じく、サンプル作成を通して解説します。   VSTO ビジュアルなデザイナーでリボンをカスタマイズする この方法は、VSTO で提供されている Visual Studio 上で GUI でリボンのカスタマイズを行うビジュアルなデザイナー機能を用いてリボンをカスタマイズします。カスタマイズ内容は、VSTO ランタイムによって VSTO ソリューションのロード時にOffice が読み込むことができるよう解釈され、リボンにカスタマイズが反映されます。   メリット  GUI でリボンをカスタマイズできるため、XML コードを開発者が実装する必要がありません。直感的にデザインを行うことができます。  VSTO はアドインおよびドキュメント形式のカスタマイズが作成できますので、リボン カスタマイズを反映させたい範囲に応じたソリューションが開発できます。   制約事項 既存のリボン コントロールを無効化する等のカスタマイズはできません。(既存タブに独自コントロールを追加することはできます。) VSTO で提供される機能のため、VSTO としての開発が必要です。C++ で開発された COM アドイン等からは利用できないことや、VSTOのインストール方法 (通常は ClickOnce) などを検討する必要があります。   それでは、ここからは Excel アドインのサンプルを作成する手順を説明していきます。   今回のテーマ 今回の記事では、サンプルの作成を通して以下を実現する方法をお伝えしたいと思います。 VSTO アドインでビジュアルなデザイナーからリボンをカスタマイズする方法 リボンのコールバック関数記述のポイント…


Office リボンをカスタマイズ – パート2 – (ファイルにカスタム XML を追加)

こんにちは、Office 開発 サポート チームの中村です。 今回の投稿は、前回に引き続き、リボンのカスタマイズについての投稿です。今回は、前回の投稿で紹介した 「a. OpenXML 形式のファイルにカスタム XML を追加してカスタマイズを行う」 方法について、サンプルの作成を通して手順とポイントの解説をしていきます。   ファイルにカスタム XML を追加してリボンをカスタマイズする 前回の投稿で説明したように、Excel, Word, PowerPoint の Office 2007 形式のファイルは Open XML 構造になっています。Open XML ファイル フォーマットでは、ファイル内容が記述された xml ファイルと、それらの関係性を表す rels ファイルで構成されています。 今回ご紹介するリボンのカスタマイズにおいて、ファイルの内部構造について隅々まで理解する必要はありませんが、興味のある方は以下の公開情報などをご参照ください。   タイトル : Office (2007) Open XML ファイル形式の概要 アドレス : https://msdn.microsoft.com/ja-jp/library/aa338205.aspx   この記事で紹介する方法では、Office ファイルに新しく独自のカスタム XML ファイルを追加し、ここに XML でリボンのカスタマイズ内容を記述します。そして、rels ファイルに「このカスタム XML ファイルにはリボンのカスタマイズ内容が書いてあるから、ファイルを開くときに XML…


Office リボンをカスタマイズ – パート1 – (カスタマイズ手法と仕組み)

こんにちは、Office 開発 サポート チームの中村です。 今回の記事では、Office のリボンをカスタマイズする方法について記載します。このテーマについては、複数回に渡ってご紹介していく予定ですが、今回はまず、概要を記載したいと思います。   1. Office リボンのカスタマイズ方法 Office 2003 までは、メニューのカスタマイズを行うときには、Commandbars オブジェクトを用いて VBA などのプログラムからカスタマイズしていました。Office 2007 からメニューがリボンに変更され、これに伴って新しいカスタマイズ方法が登場しました。Office 2007 以降でも Commandbars オブジェクトを利用してもある程度メニューをカスタマイズすることはできますが、この方法ではカスタマイズできない項目もあり、現在弊社ではリボンに対応した新しい方法でのカスタマイズを推奨しています。 リボンに対応したカスタマイズについては、以下のような方法があります。 a. OpenXML 形式のファイルにカスタム XML を追加してカスタマイズを行う (カスタマイズ反映はファイル単位) b. VSTO から XML を用いてカスタマイズを行う (カスタマイズ反映はファイル単位もしくは Office アプリケーション単位) c. VSTO からビジュアルなデザイナーを用いてカスタマイズを行う (カスタマイズ反映はファイル単位もしくは Office アプリケーション単位) a と b の場合、開発者は XML でリボンのカスタマイズ情報を記載します。a の場合は Office ファイル内に、b は VSTO カスタマイズ内に…


OneNote API (C#) を使いページ コンテンツを表示するサンプル コード

こんにちは、Office Developer サポートの森 健吾 (kenmori) です。 今回の投稿では、OneNote API を使用して、ノート、セクション、ページを選択し、コンテンツを表示するプログラムを、実際に C# で開発するエクスペリエンスをご紹介します。 ウォークスルーのような形式にしておりますので、慣れていない方も今回の投稿を一通り実施することで、プログラム開発を経験し理解できると思います。本投稿では、現実的な実装シナリオを重視するよりも、OneNote API を理解するためになるべくシンプルなコードにすることを心掛けています。例外処理なども含めていませんので、実際にコーディングする際には、あくまでこのコードを参考する形でご検討ください。 現在のところ Microsoft Graph において OneNote API はベータ版のみの提供となります。ベータ版の API は本番環境における使用はサポートされません。そのため、代わりに OneNote エンドポイント (https://www.onenote.com) 配下に要求を実行する実装コードで実現しております。 事前準備 以前の投稿をもとに、Azure AD にアプリケーションの登録を完了してください。少なくとも以下のデリゲートされたアクセス許可が必要です。 ・View OneNote Notebooks その上で、クライアント ID とリダイレクト URI を控えておいてください。   開発手順 1. Visual Studio を起動し、Windows フォーム アプリケーションを開始します。 2. ソリューション エクスプローラにて [参照] を右クリックし、[NuGet パッケージの管理] をクリックします。 3. ADAL で検索し、Microsoft.IdentityMode.Clients.ActiveDirectory…

0

VSTO : .NET 3.5 で使用していた UserInclusionList クラスが .NET 4.0 以降は使用できない

  こんにちは、Office 開発 サポート チームの多田です。 今回は、.NET 3.5 で使用していた UserInclusionList クラスが .NET 4.0 以降では使用できない件、およびその対処策についてご案内します。   はじめに VSTOソリューションをインストール時や、初回起動時にユーザーに信頼するかどうかの確認ダイアログを表示させたくない、といった理由から、VSTO ソリューションへの信頼をあらかじめ付与したい場合があります。信頼を付与する方法として、従来、VSTO では UserInclusionList クラスおよび AddInSecurityEntryクラスが用意されていました。   参考) 方法: 信頼のリストのエントリを追加または削除する https://msdn.microsoft.com/ja-jp/library/bb398239.aspx UserIncrusionList クラスおよび AddInSecurityEntry クラスを含む Microsoft.VisualStudio.Tools.Office.Runtime.v10.0.dll は、.NET Framework 3.5 用の Office 拡張機能アセンブリです。 このため、.NET Framework 3.5 ターゲットの VSTO テンプレートを含まない Visual Studio 2012 以降がインストールされた開発環境で、かつ .NETFramework 3.5 が端末にインストールされていない場合は、Microsoft.VisualStudio.Tools.Office.Runtime.v10.0.dll アセンブリを利用できません。また、インストール先環境に .NET Framework 3.5 がインストールされていない場合も、同様に利用できません。   参考) タイトル : Visual Studio Tools…

0

サポート対象外の構成でのトラブルシュート (切り分けの進め方)

こんにちは、Office 開発 サポート チームの中村です。 ユーザーの皆様にサポート サービスをご愛顧頂いていることに厚く御礼申し上げます。 私たち Office サポート チームでは、日々、お客様から様々なお問い合わせを頂いておりますが、ご質問の内容によっては初期の切り分けに時間を要す場合や、サポート外の構成のため、調査に取り掛かれないこともあります。このような場合、事前にお客様側である程度問題の切り分けを実施いただくことで、私たちサポート チームで、より迅速にサポートを開始することができます。 今回の記事では、問題点の切り分けとして有効な手段をご紹介させていただくのと合わせて、サポート対象外の構成やご質問の内容を紹介させていただきます。サポートに問い合わせをする・しないに関わらず、問題が発生したときの初期調査の一助としても利用できる内容となっていますので、ぜひご確認ください。   目次 1. サーバーサイド オートメーションでの現象 2. Windows XP / Office 2003 以前での現象 3. Visual Basic 6.0アプリケーションでの現象 4. サードパーティ製品との連携 5. 複雑なプログラムでの現象 6. パフォーマンス チューニング   1. サーバーサイド オートメーションでの現象 このブログでも何度か取り上げていますが、Office 製品はサーバーサイド構成で利用することをサポートしていません。これについては、詳細を以下の公開情報に記載しています。   タイトル : Office のサーバーサイド オートメーションについて アドレス : https://support.microsoft.com/ja-jp/help/257757   サーバーサイドと表現していますが、これは、無人の非対話型クライアント アプリケーションからの Office オートメーションを意味しています。Office…


Excel の CodeName プロパティが取得できない動作

こんにちは、Office 開発 サポート チームの中村です。 今回は、Excel の CodeName プロパティの動作について、開発時に気付きづらい動作上の注意点を記載します。この状況に直面した開発者の皆様へのヒントになれば幸いです。   Excel をオートメーションするとき、ブックやシートを特定するために、CodeName プロパティを使用できます。CodeName プロパティは、Visual Basic Editor (VBE) のプロパティ ウィンドウの [(オブジェクト名)] で確認できる値です。 Excel の CodeName プロパティは、以下の 3 つのオブジェクトに用意されています。   タイトル : Workbook.CodeName プロパティ (Excel) アドレス : https://msdn.microsoft.com/ja-jp/library/office/ff195162.aspx   タイトル : Worksheet.CodeName プロパティ (Excel) アドレス : https://msdn.microsoft.com/ja-jp/library/office/ff837552.aspx   タイトル : Chart.CodeName プロパティ (Excel) アドレス : https://msdn.microsoft.com/ja-jp/library/office/ff835278.aspx   CodeName…


[オートメーション / VSTO] .NET での Office ソリューション開発時の開発環境のバージョン選定 (2017 年 2 月版)

こんにちは、Office 開発 サポート チームの中村です。 今回は、C# や VB.NET を使って .NET Framework 上で動作する Office をオートメーションするプログラムや、VSTO でOffice ソリューション (アドインや、プログラムが組み込まれた Office ファイル) を作成するときに必要な環境構成について記載します。 過去の投稿で、当時の製品でのバージョン選定について記載していましたが、古い情報になってしまいましたので、本記事では、現在サポートされる製品バージョンについての最新情報を記載したいと思います。動作の仕組みの説明などは、過去の投稿で詳しく説明していますのでぜひ合わせてご参照ください。   目次 1. 導入 – 開発環境に必要なもの 2. Office オートメーションの場合 3. VSTO ソリューションの場合 4. その他構成に関する注意点 5. 参考資料   1. 導入 – 開発環境に必要なもの .NET Framework 上で動作する Office をオートメーションするプログラムや VSTOを開発する際、開発環境に必要な製品は、以前から変わりなく以下の 4 点です。 Visual Studio .NET Framework Office Office…


Office をマルチスレッドでオートメーションすることの危険性

こんにちは、Office 開発 サポート チームの中村です。 今回は、Office をオートメーションするアプリケーションをマルチスレッドで作成する際の注意点について記載します。 Office は STA (Single-Threaded Apartment) モデルで動作しているため、マルチスレッドからの呼び出し、特に Office に重い処理を実行させているときや、ループ処理などでマルチスレッドから大量の呼び出しを行うと、エラーが発生することがあります。 この動作については、以下の弊社公開資料で解説していますが、開発者の皆様に知って頂く機会を増やすとともに、図等を用いてより親しみやすい内容でご案内するため、今回、本記事でも取り上げたいと思います。 タイトル : Office でのスレッドのサポート アドレス : https://msdn.microsoft.com/ja-jp/library/8sesy69e.aspx   目次 1. STA とは? 2. マルチスレッドからの呼び出しで想定されるエラー 3. 対処方法   1. STA とは? プロセスのスレッド モデルには、大きく分けて STA と MTA (Multi-Threaded Apartment) モデルがありますが、Office は STA を採用しています。(主に GUI でユーザー操作を行うアプリケーションでは、処理の整合性を確保するための実装が MTA と比較して容易なため、STA が採用されることが多いと思います。) STA モデルである Office では、他プロセスからの…