1. Office PIA 経由で Office 製品をオートメーションすることによる、Office オブジェクトモデルの操作

Last Update:
(※ 2012 年 2 月 15 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発系サポートの柴田 茂 (sshibata) です。 本稿で表現している、Office オートメーションとは、Windows 上の全く別のアプリケーションを使用して、Office によって通常は手動やマクロによって行われる処理を、自動化する仕組みとなります。例えば、Excel のオートメーションを使用すれば、新規ブックの作成、ブックへのデータ入力、グラフの作成などの作業を自動的に実行させることができます。Excel などの Microsoft Office アプリケーションでは、通常はユーザー インターフェイスを介して手動で実行する機能のほぼすべてを、オートメーションによってプログラムから実行することができます。 M...

Read More

Microsoft Office 製品を Windows のプラットフォーム上で別アプリケーションから操作する場合のテクノロジについて

Last Update:
(※ 2012 年 2 月 15 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発系サポートの柴田 茂 (sshibata) です。私の投稿では、Microsoft Office 製品を、Windows のプラットフォーム上で別アプリケーションから操作する場合にどんなテクノロジを検討すべきかというテーマについて記載致します。 .NET Framework が登場するはるか前の時代から、Windows 上で動作するOffice アプリケーションに介入してアプリケーションソフト間でデータを転送・共有するための仕組みは存在していました。それが、OLE と呼ばれる規格(Object Linking and Embedding) であったり、DDE というテクノロジであったり(Dynamic Data E...

Read More

Office オートメーションで割り当てたオブジェクトを解放する - Part2

Last Update:
(※ 2012 年 2 月 28 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。)   こんにちは、Office 開発系サポート 森 健吾 (kenmori) です。 今回の投稿では、Office オートメーションの実装コードで割り当てたオブジェクトを解放する – Part1 の続編を記載いたします。続編では、前回の投稿でベスト プラクティスとして紹介した解放処理に対して解説を実施した後、正しくオブジェクト解放を実施しない場合に生じる影響についてご紹介します。 最初に、オブジェクト解放漏れがあると、主に以下のような事象があるということは先に述べておきます。 ・意図とは異なる COM オブジェクトに接続され、想定とは異なる結果を返し、アプリケーションの動作に予期せぬ影響を与えます。・通常のメソッド実行にも関わらず COMEx...

Read More

Office オートメーションで割り当てたオブジェクトを解放する – Part1

Last Update:
(※ 2012 年 2 月 9 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発系サポート 森 健吾 (kenmori) です。 今回の投稿では、Office オートメーションの実装コードで割り当てたオブジェクトを解放するというテーマにて記載いたします。.NET Framework 上で動作するカスタム アプリケーションにおいて、Office オートメーションで処理を実装する場合には割り当てたオブジェクトを確実に解放することをお勧めします。 2016/12/2 Updateサンプル コードを中間オブジェクトも解放するよう、より適切な形に変更しました。 2017/3/28 Updateアプリケーション終了前に一部のオブジェクトを解放するよう、サンプル コード...

Read More

Office サーバー サイド オートメーションの代替案について

Last Update:
(※ 2014年 5 月 7 日に Japan SharePoint Support Team Blog に公開した情報のアーカイブです。) こんにちは、SharePoint サポートの 森 健吾 (kenmori) です。 今回の投稿では、Office 開発サポートを担当していた時期に記載した下記投稿 Office サーバーサイド オートメーションの危険性の続編として、その代替案を記載いたします。 タイトル : Office サーバー サイド オートメーションの危険性についてアドレス: https://officesupportjp.github.io/blog/Office サーバー サイド オートメーションの危険性について/ 上記投稿のおさらいとなりますが、例えば以下のような機能を Web サーバー上で Office API を使用したオートメーションで実装することはサポートされ...

Read More

Office サーバー サイド オートメーションの危険性について

Last Update:
(※ 2014 年 4 月 11 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発系サポート 森 健吾 (kenmori) です。 今回の投稿では、Office サーバー サイド オートメーション (非対話型オートメーション) に対する正しい理解を持っていただくことを目的として記載いたします。 はじめに 結論からお伝えしますと Office のサーバー サイド オートメーション (非対話型オートメーション) を、マイクロソフトはサポートしておりません。 前提として、サーバーにインストールされた Office クライアント アプリケーションを使用したオートメーションを実施して、クライアント側の処理をサーバー側で集中して代行するなどの機能をライセンスを持たないエンドユーザーに提供した場合は、Micr...

Read More

Officeソリューション開発時の開発環境のバージョン選定について

Last Update:
(※ 2012 年 5 月 23 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは Office 開発系サポートの森 健吾 (kenmori) です。 今回の投稿では .NET Framework 上で動作する Office ソリューションを開発する際に、検討すべき開発環境のバージョン選定のために必要となる情報について記載いたします。 以下の内容でご説明させていただきます。 2017/2 Update 新しい Visual Studio と Office バージョンについての記事を以下に投稿しました。 タイトル : [オートメーション / VSTO] .NET での Office ソリューション開発時の開発環境のバージョン選定 (最新版)アドレス : https://officesupportj...

Read More

Excel ユーザー定義関数に機能説明や独自ヘルプをリンクする方法

Last Update:
(※ 2017 年 11 月 21 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発サポート チームの中村です。 Excel には、セルに設定する式として、SUM() のように計算に関するものや、IF() のように論理条件を制御するものなど、様々なワークシート関数が用意されています。既存のワークシート関数で要望を満たすものがない場合、マクロで実装した独自処理を、ユーザー定義関数として登録することができます。 このブログを訪れる方の多くは、ユーザー定義関数を登録すること自体はご存知の方が多いかと思いますが、このようなユーザー定義関数を作成するときにその関数に機能説明やヘルプを追加する方法について、公開情報からは分かりづらい点もありますので、本記事で紹介したいと思います。 1. ユーザー定義関数の作...

Read More

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

Last Update:
(※ 2017 年 1 月 30 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発 サポート チームの中村です。 今回は、Office をオートメーションするアプリケーションをマルチスレッドで作成する際の注意点について記載します。 Office は STA (Single-Threaded Apartment) モデルで動作しているため、マルチスレッドからの呼び出し、特に Office に重い処理を実行させているときや、ループ処理などでマルチスレッドから大量の呼び出しを行うと、エラーが発生することがあります。 この動作については、以下の弊社公開資料で解説していますが、開発者の皆様に知って頂く機会を増やすとともに、図等を用いてより親しみやすい内容でご案内するため、今回、本記事でも取り上げたいと思い...

Read More

Excel 2013 からのウィンドウ管理方法変更について – シングル ドキュメント インターフェイス (SDI)

Last Update:
(※ 2016 年 12 月 19 日に Japan Office Developer Support Blog に公開した情報のアーカイブです。) こんにちは、Office 開発 サポート チームの中村です。 先日、本ブログの更新再開をお知らせさせて頂きましたが、今回の投稿では Office クライアント開発に関する投稿の第一弾として、Excel 2013 から変更された Excel のウィンドウ管理方法について記載します。 今回の内容は、Office クライアント製品を利用した開発を行う場合だけでなく、画面操作で Excel を操作する上でも影響がありますが、特に開発観点でチェックして頂きたいポイントを解説していきます。 2018/4/4 Update3-1. に DisableMergeInstance に関する情報を追記しました。 2020/7...

Read More