C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: Wordのアドイン作成についての質問


(過去ログ 128 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■75899 / inTopicNo.1)  Wordのアドイン作成についての質問
  
□投稿者/ アタタ (1回)-(2015/05/15(Fri) 13:33:22)

分類:[VB.NET/VB2005 以降] 

先日、VB2008でWordの書類を作成するWinFormアプリを作成しました。
ただ、作成したWordをWordソフトで開いて編集を行うことも多く、
いっそのこと、Wordのアドインが作れないか、という話になりました。

色々調べてみると、Visual StudioでWordなどのOfficeのアドインが作成できるとのことですが、
何しろこのアドインに関する基礎知識がなく、全くイメージができません。

そこで、アドインに関する、以下の情報についてお教え頂けないでしょうか?

1..netの利用可否
  現在のWinFormアプリでは、条件の設定画面や、参照情報のグリッド表示などを行っています。
  また、.netのクラスライブラリを色々と使っており、VBAのマクロだけでは不十分のように思います。
  そもそも、アドイン開発で.netは利用できるのでしょうか?

2.アドイン開発用のVisual Studioのバージョン・エディション
  現在、Visual Studio 2008のStandard Editionを持っていますが、
  このバージョン・エディションでアドイン開発は可能なのでしょうか?
  このバージョン・エディションで不十分であれば、最新版の導入も検討します。

3.対応するWordのバージョン
  現在のWinFormアプリでは、遅延バインディングを用いてWordの操作を行っているため、
  Wordの2007〜2013で動作することができますが、
  このアドインは、Word2010用、Word2013用のように各バージョン毎に用意しなくては
  ならないでしょうか?

4.アドインの配布方法
  作成したアドインは、どのように配布するのでしょうか?
  (そもそも、実際にどのようにアドインが動作するのか、
  お恥しい限りですが、全くイメージが湧きません。)

以上、宜しくお願い申し上げます。
引用返信 編集キー/
■75902 / inTopicNo.2)  Re[1]: Wordのアドイン作成についての質問
□投稿者/ 魔界の仮面弁士 (323回)-(2015/05/15(Fri) 13:52:54)
No75899 (アタタ さん) に返信
> 1..netの利用可否
> 2.アドイン開発用のVisual Studioのバージョン・エディション
たとえば、下記のような物があります。

VSTO アドイン
http://www.atmarkit.co.jp/ad/ms/vs2008/03/vs2008_03.html

ADX COM アドイン
https://www.add-in-express.com/downloads/adxnet.php


このほか、VBA から .NET のライブラリを利用する方法も考えられます。

たとえば、.NET で ActiveX DLL を作ってそれを利用するとか、
VBA からは Shell 関数で VB.NET 製の EXE を呼び出すなどして、
VB.NET 側で改めて、呼出元の Excel をオートメーション操作する方式などです。


> 3.対応するWordのバージョン
Office 製品は、バージョンによって細かい差があります。
今まで Sub だったメソッドが Function に拡張されるケースなどもあり、
時には単にレイトバインドにするだけでは不十分で、バージョン別の
呼び分けが必要になってくるケースもあるかもしれません。
それぞれの違いを調べながら作りこめば、複数バージョン対応のものも
作れるでしょうが、それが難しいようなら個別に用意した方が安全でしょう。


> 4.アドインの配布方法
アドインによって異なりますが、Word オプションのアドイン画面から
DLL を指定してもらうといった方法が挙げられます。
引用返信 編集キー/
■75903 / inTopicNo.3)  Re[2]: Wordのアドイン作成についての質問
□投稿者/ アタタ (2回)-(2015/05/15(Fri) 16:11:36)
魔界の仮面弁士様、早速の書き込みありがとうございます。

今、VSTO アドインの参考サイトを見ていますが、
こちらのVS2008にはWordアドイン用のテンプレートはなく、
共有アドインというテンプレートしかありません。
(これをダブルクリックすると、ウィザードが起動し、
アプリケーションホストの選択という所でWordやExcel等の指定がありました。)

最終的には、MyAddin1、MyAddin1Setupという2つのプロジェクトが作成され、
Connect.vbに以下のようなコードが作成されていました。

Public Class Connect

Implements Extensibility.IDTExtensibility2

Private applicationObject As Object
Private addInInstance As Object

Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown
End Sub

Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnAddInsUpdate
End Sub

Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete
End Sub

Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection
End Sub

Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
applicationObject = application
addInInstance = addInInst
End Sub

End Class

ここで例のようなユーザーコントロールを作成し、関連付けさせたいのですが、
具体的にどのようにすればいいのでしょうか?

以上、宜しくお願い申し上げます。
引用返信 編集キー/
■75904 / inTopicNo.4)  Re[3]: Wordのアドイン作成についての質問
□投稿者/ 魔界の仮面弁士 (324回)-(2015/05/15(Fri) 19:44:37)
No75903 (アタタ さん) に返信
> 今、VSTO アドインの参考サイトを見ていますが、
> こちらのVS2008にはWordアドイン用のテンプレートはなく、

Visual Studio Tools for Office がつかるのは Professional 以上。
Standard Edition の場合は、追加購入になってしまうようで。


VSTO 2003 (要VSTO 2003 単体パッケージ)
 → .NET 1.1 用。Word 2003 文書/ Excel 2003 文書に対応。

VSTO 2005 (要VS2005 Team または VSTO 2005 単体パッケージ)
 → .NET 2.0用(3.0/3.5も可)。Word 2003 文書 / Excel 2003 文書 / Outlook 2003 に対応。

VSTO 2005 Second Edition (VSTO2005 の Office 2007 対応版) (要VS2005 Pro以上)
 → .NET 2.0用(3.0/3.5も可)。VSTO2005 文書 / Word,Excel,Outlook,PowerPoint,Visio の 2003 と 2007 に対応。InfoPath も可。

VSTO 3.0 (要 VS2008 Pro以上)
 → .NET 3.5 SP1用。VSTO2005SE のものに加え、Project と SharePoint Workflow に対応。

VSTO 4.0 (要 VS2010 Pro以上)
 → .NET 3.5 SP1/4.0用。VSTO 3.0 に加え Office 2010 にも対応したが、Office 2003 は対象外。

VSTO 2012 (要 VS2012 Pro以上) http://aka.ms/OfficeDevToolsForVS2012
 → .NET 3.5 SP1/4.0用。対応する Office は 2010 / 2013 / 365 です。


> 共有アドインというテンプレートしかありません。
VSTO が Office の文書に関連付くアドインであるのに対し、
共有アドインは、Office というアプリケーションに関連付くアドインだった気が。

> アプリケーションホストの選択という所でWordやExcel等の指定がありました。)
ホスト(Word や Excel)のプライマリ相互運用機能アセンブリへの参照が追加されます。


> ここで例のようなユーザーコントロールを作成し、関連付けさせたいのですが、
> 具体的にどのようにすればいいのでしょうか?
起動時に呼び出されるのが、Sub OnConnection の部分です。

このタイミングでコマンドバー(ツールバー・メニューバー・リボン)の追加処理を行うのが良いでしょう。
(コマンドバーを操作せず、Word や Excel のイベントに応答させるような実装にも出来ます)

とりあえず、このあたりが参考になるかも。
https://msdn.microsoft.com/ja-jp/library/aa663367%28v=office.12%29.aspx
引用返信 編集キー/
■75907 / inTopicNo.5)  Re[4]: Wordのアドイン作成についての質問
□投稿者/ daive (57回)-(2015/05/16(Sat) 13:13:38)
>ホスト(Word や Excel)のプライマリ相互運用機能アセンブリへの参照が追加されます。
テンプレートサポートも、
VSのバージョン毎に、サポート範囲が異なりますよねぇ。
Microsoft.Office.Interop.Excel / Microsoft.Office.Interop.Word の方も、
対象として、使用するのは、インストール済み OFFICE 次第だし。
日本語、英語と作り分ける場合などは、OFFCE 20xx が同じでも、DLLが違った筈なので、
インストーラー用パッケージングも、変えた記憶。
(相応の、複数の環境で、コンパイルして、パッケージ化)

OFFICE製品の、複数インストールの同時動作は、EXCELのみで、
EXCEL以外は、修復セットアップの様な画面が出てきて、切替も面倒。
OUTLOOKの様に、インストール不可もあるし。

遅延バインディングで、逃げるしか手はないのかなぁ。
(XLL、EXCEL−DNAは、除く)
引用返信 編集キー/
■75922 / inTopicNo.6)  Re[5]: Wordのアドイン作成についての質問
□投稿者/ アタタ (3回)-(2015/05/18(Mon) 11:18:39)
魔界の仮面弁士様、daive様、ありがとうございます。

確かに、@ITのサイトでは、VSTOは
「Visual Studio 2008(以降、VS 2008)のProfessional Edition以上に搭載されている」
とありました。
見落としていました。申し訳ございません。


さて、皆様より頂いた情報を自分なり整理してみましたが、
以下の理解で正しいでしょうか?

・VSTOが含まれていないEditionは別途購入が必要。
 また、対象となるWord(Office)のバージョンが決まっているため、
 それに相当するVSTO(必要に応じ対応VS)の購入が必要。

また、VSTOを選択しない場合、共有アドインというものを利用することになると思いますが、
これで遅延バインディングを使うにはどのようにすればいいのでしょうか?

以上、宜しくお願い申し上げます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -