Office関連

「NetOffice」で簡単に.NETからOfficeを操作

ネットで「NetOffice」なるツールがあることを知ったので、早速試してみました。
CodePlexのページによると、Microsoft Office製品にアクセスするための.NETラッパーアセンブリのようで、Officeのバージョンに関係なく簡単にコードが書けるとのこと。

ツール本体のダウンロードは上記ページの「download」リンクから行えますが、今回はプロジェクトウィザード等の開発支援機能が充実している「Developer Toolbox」を使ってサンプルアプリケーションを作成してみました。

下記ダウンロードページから「NetOffice Developer Toolbox 1.1.rar」ファイルをダウンロードして適当なフォルダに解凍します。

・NetOffice – MS Office in .NET – Download: NetOffice Release 1.4.1
http://netoffice.codeplex.com/releases/view/70943

出力された「NetOffice.DeveloperToolbox.exe」ファイルを実行し、「VS Project Wizard」タブからプロジェクトウィザードを実行します。

ウィザードの指示に従って進めていくと、最後にプロジェクトが作成されます。

作成されたプロジェクトをひな型として書いたコードが下記の通りです。

・Form1.vb

Imports NetOffice
Imports Word = NetOffice.WordApi
Imports NetOffice.WordApi.Enums
Imports Office = NetOffice.OfficeApi
Imports NetOffice.OfficeApi.Enums
Imports VBIDE = NetOffice.VBIDEApi
Imports NetOffice.VBIDEApi.Enums

Public Class Form1

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim appWord As New Word.Application
        Dim docNew As Word.Document = appWord.Documents.Add()

        docNew.Range(0, 0).InsertAfter("Hello.")
        appWord.Visible = True
        MsgBox("Wordを終了します。")
        appWord.Quit(WdSaveOptions.wdDoNotSaveChanges)
        appWord.Dispose()
    End Sub
End Class

Wordを操作して新規文書を追加後に文章入力、最後に文書を閉じるという簡単なプログラムですが、ビルドして実行したところ問題無く動作しました(Word 2013 CP)。

.NETからのOfficeオートメーションは後始末がかなり面倒臭かった印象があるのですが、どうやらそこら辺をNetOfficeが上手く処理してくれているようで(詳しく調べていないのでNetOfficeがどう処理しているかは私の方では未確認です)、文書を閉じた後にWordのプロセスが残ったままになる、といったこともありませんでした。
リボンをカスタマイズしたCOMアドインの作成も試してみましたが、こちらも特に問題無く、非常に簡単な手順で作成することができました。

ほんの少ししか触っていないのですが、”かなりお手軽でかなり便利なツール“という印象です。
Officeオートメーションで困った経験をお持ちの方、一度試してみてはいかがでしょうか?

ちなみに、NetOffice Developer Toolboxで作成したプロジェクトファイルをSharpDevelop 3.2でビルドしたところ、COMアドインとして問題無く動作しました。

関連記事

  1. Office関連

    PDFファイルに差し込み印刷するVBAマクロ

    このページにもあるように、AcrobatはOLEオートメーション機能に…

  2. Office関連

    蛍光ペンでマークした部分の文字数をカウントするWordマクロ

    Twitterでたまたま下記のツイートを見つけたので、簡単な処理を考え…

  3. Office関連

    スライド内容を自動的に機械翻訳するPowerPointマクロ

    前回の記事で紹介した各スライドに配置されたオートシェイプからテキストを…

  4. Office アドイン

    Office用アプリではalertやconfirmが使えない?

    JavaScriptでメッセージや確認ダイアログを表示する際には「al…

  5. Office アドイン

    [Officeアドイン]ワークシートで選択範囲を変更したときに発生するイベント

    ワークシート上で選択範囲の変更を検知する際、VBAでは通常「Works…

  6. Office アドイン

    [Officeアドイン]アドイン コマンド(Add-In Commands)の紹介

    前回の記事は“Office アドイン”のAdvent calendar…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP