Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー

こんにちは、Office 開発サポート チームの中村です。 今回の記事では、Office 2016 クイック実行形式 (C2R) 向けのバージョン 1708 の更新よって、日本語のモジュール名やフォーム名を持つ Excel ファイルを開くときにエラーが発生する動作について記載します。   Office 2016 クイック実行形式向けの更新 バージョン 1708 (16.0.8431.xxxx)  において、モジュール名やフォーム名に日本語が設定された Excel のマクロ付きファイルを開こうとすると、以下のようなメッセージが表示され、正常に開くことができません。   例1: ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか? ブックの開発元が信頼できる場合は、[はい] をクリックしてください。   例2: このブック内の Visual Basic for Applications (VBA) マクロは破損しており、削除されました。 マクロの破損は現在のファイルに存在する可能性があります。 マクロを回復するには このファイルのバックアップ コピーを開いてください (バックアップ コピーがある場合) 。   2017 年 8 月 23 日現在、バージョン 1708 は Office Insider ファースト…


バージョン 1705 以降の Excel 2016 でコピー範囲が保持されるようになった動作のプログラムへの影響

こんにちは、Office 開発サポート チームの中村です。   今回の投稿では、Excel のコピー動作の変更に関して記載します。 これまで、Excel ではセル範囲をコピーした後、他のセルに値を入力したり、セルの挿入や削除などを行うと、コピー範囲が解除されて貼り付けられなくなっていました。 この動作について、クイック実行版の Excel 2016 バージョン 1705 (16.0.8067.xxxx) で、Excel のセル範囲をコピーした後、他の操作を行っても、コピー範囲が解除されないように変更されました。このバージョンは、Current Channel 向けに 2017 年 5 月に提供されたものとなり、他のチャネルへは順次提供されます。この新しい動作については、以下の公開情報で確認できます。   タイトル : Office 365 の新機能 アドレス : https://support.office.com/ja-JP/article/95c8d81d-08ba-42c1-914f-bca4603e1426 該当箇所 : “2017 年 5 月の更新プログラム” 内の “コピーを保持する”   例) 以下のように A1 セルをコピーします。   B1 セルに文字を入力します。   Enter キーを押下して、入力を完了すると、A1 セルのコピーが維持されたままとなっており、そのまま C1 セルに貼り付けられます。   これに伴って、画面操作では、行などの挿入を行うときに…


2017 年 7 月のセキュリティ更新適用後、VBA から一部のオブジェクトを作成できません

こんにちは、Office 開発サポート チームの中村です。   今回の記事では、2017 年 7 月 12 日 (日本時間) に公開されたセキュリティ更新によって、VBA から一部のオブジェクトを利用できなくなりました。本記事では、この動作ついて記載します。 2017/7/14 Update クイック実行形式向けの更新が公開されましたので、情報を追加しました。   2017 年 7 月の Office セキュリティ更新で、以下の公開情報で案内している修正が行われました。 タイトル : CVE-2017-8570 | Microsoft Office Remote Code Execution Vulnerability アドレス : https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/CVE-2017-8570   セキュリティの脆弱性に関する情報のため対象オブジェクトの詳細を公開することはできませんが、この更新によって、VBA から CreateObject などで一部のオブジェクトを作成することができなくなりました。 (Excel.Application 等の各種 Office アプリケーション オブジェクト、テキストの入出力に使用する Scripting.FileSystemObject 等は引き続き作成できます。)   この更新内容は、Office 2007 / 2010 / 2013…


Excel の SpecialCells メソッドで特定の状況において期待しない該当セルが取得される

こんにちは、Office 開発サポート チームの中村です。   Excel には、SpecialCells メソッドという、引数に指定した条件に合致するセルを返すメソッドが用意されています。   タイトル : Range.SpecialCells メソッド (Excel) アドレス : https://msdn.microsoft.com/ja-jp/library/office/ff196157.aspx   現在の Excel の動作では、特定の処理の流れでこのメソッドを使用するとき、期待した範囲が取得できないことがあります。 今回の記事では、この動作について詳細を記載します。この動作が生じる状況に該当する場合は、後述の回避策で対応することをご検討ください。   2017/7/13 Update この動作は、Excel 製品の制限事項であることを追記しました。   目次 1. 再現サンプル 1-1. 再現ファイル構成 1-2. サンプル プログラム 2. 再現手順と現象 3. 発生条件と原因 4. 回避策 4-1. DisplayAlerts プロパティに False を設定する 4-2. 事前に SpecialCells メソッドを実行する   1. 再現サンプル 今回の現象は、発生条件が込み入っていますので、まずは現象が再現するファイルとサンプル プログラムを用いて、具体的な動作を説明します。…


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 の更新プログラムを適用した環境において、特定の条件下で Excel を起動する際に VBA のコンパイルエラーを示すダイアログが表示される件について紹介します。     現象 今回の現象は以下の手順にて Excel および VBA を作成した際に発生します。   現象再現手順 (Excel 2013 の場合) ^^^^^^^^^^^^^^^^^^^^^^^^^^ Excel 2013 SP1 に以下の KB 3191877 を適用します。   タイトル : May…

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…