Office リボンをカスタマイズ – パート4 – (VSTO XML でカスタマイズ)

こんにちは、Office 開発 サポート チームの中村です。 Office リボンのカスタマイズ方法について数回にわたってご紹介していますが、パート 1 でご紹介した 3 つの方法のうち、最後の方法 「b. VSTO から XML を用いてカスタマイズを行う」について詳しく紹介したいと思います。   以前の投稿は、以下をご参照ください。 Office リボンをカスタマイズ – パート1 – (カスタマイズ手法と仕組み) Office リボンをカスタマイズ – パート2 – (ファイルにカスタム XML を追加) Office リボンをカスタマイズ – パート3 – (VSTO ビジュアルなデザイナーでカスタマイズ)   VSTO XML でリボンをカスタマイズする この方法は、Visual Studio を使って VSTO ソリューションを開発し、このソリューションの中に、リボンをカスタマイズする XML とカスタマイズで実行したい処理 (コールバック関数) を実装します。ビジュアルなデザイナーと同じように、カスタマイズ内容は VSTO ランタイムによって VSTO ソリューションのロード時にOffice…


KB 3191877 の適用後に VBA のコンパイルエラーが発生する

対象製品 ・Excel 2013 (15.0.4927.1000) ・Excel 2016 Insider Fast version 1705 (Build 8117.1000)   こんにちは、Office 開発 サポート チームの多田です。 今回は 2017 年 5 月 2 日にリリースされた Excel 2013 の更新プログラムを適用した環境において、特定の条件下で Excel 2013 を起動する際に VBA のコンパイルエラーを示すダイアログが表示される件について紹介します。     現象 今回の現象は以下の手順にて Excel および VBA を作成した際に発生します。   現象再現手順 ^^^^^^^^^^ Excel 2013 SP1 に以下の KB 3191877 を適用します。   タイトル : May 2,…

0

Office 2016 クイック実行形式 16.0.7341.2032 以降で Microsoft.Vbe.Interop.Forms を参照するプログラムでエラー

こんにちは、Office 開発サポート チームの中村です。 今回の記事では、.NET Framework 上で動作するアプリケーションからの Office オートメーションや VSTO ソリューションで、Microsoft.Vbe.Interop.Forms が参照できないことによってエラーが発生する動作について記載します。 ※ 弊社内で状況を確認中のため、この記事は後日更新される可能性があります。   1. サマリ Office 2016 クイック実行形式の 16.0.7341.2032 以降のバージョンで、Microsoft.Vbe.Interop.Forms がグローバル アセンブリ キャッシュ (GAC) に登録されなくなりました。この影響で、このバージョン以降の Office 2016 の利用時に、GAC に Microsoft.Vbe.Interop.Forms が存在しない状況が生じる場合があります。 この動作のため、Microsoft.Vbe.Interop.Forms を利用する .NET Framework 上で動作するアプリケーションで PIA 埋め込みを行っていない場合に、この環境では GAC から Microsoft.Vbe.Interop.Forms アセンブリを読み込むことができず、エラーが生じます。   2. 現象詳細 Office PIA (Office プライマリ相互運用アセンブリ) には、ActiveX コントロールへのアクセスに利用する Microsoft.Vbe.Interop.Forms アセンブリ (Microsoft Forms…


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…