Office

サブクラス化で機能拡張を行う

動機 Excel上で、セルの選択範囲が変化した際には、SheetSelectionChangeイベントが発生し、以下のようなハンドラを設定していれば、セルの選択範囲を認識することができます。 private void Application_SheetSelectionChange(object Sh, Excel.Range Targe…

Excelでセルの編集状態を認識する

Excelにてセルが編集状態を開始・終了したタイミングをイベントとして認識する方法です。 弊社のHP内の技術情報ページにて掲載しておりますので、リンクを張っておきます。Excelでセルの編集状態を認識する

実用的アプリケーションの開発(Outlook編)

何を作るか? 連絡先にWebページアドレスが指定されていた場合は、アイテム表示ウインドウ内でWebページを表示できるようにします。 プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]から、[Outlook 2007 アドイン]を作成します。 [プロジェクト]⇒[…

実用的アプリケーションの開発(Excel編)

何を作るか? カスタム作業ウインドウでボタンを押すと、Excelブック内のシートに帳票フォーマットを生成する、ドキュメントレベルのVSTOアプリケーションを作成します。 プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]から、[Excel 2007 ブック]…

実用的アプリケーションの開発(Word編)

何を作るか? ニュース記事のRSSフィードを読み込んで、Wordドキュメントを生成する、ドキュメントレベルのVSTOアプリケーションを作成します。 プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]から、[Word 2007 ドキュメント]を作成します。 ドキ…

ドキュメントを単独で開けないようにする

VSTOを使用したOfficeアプリケーションを、より大きなアプリケーションの一部で使うようになった場合、生成されたOfficeドキュメントに直接触られると困ることがあります。 ここでは、Excelにアドインでパスワード認証をつけておき、上位アプリケーションか…

文字列に対する文字単位での書式変更

本文の文字列(Word編) Wordドキュメントプロジェクトを新規に作成し、ドキュメント上にボタンを1つ置きます。その後、ボタンをダブルクリックし、以下のようなコードを記述します。 起動直後は以下のようになっています。 その後、ボタンを押すたびに、文字…

カスタム作業ウインドウのリサイズに応じてスクロールバーを出す

カスタム作業ウインドウはリサイズ可能ですが、内部のコントロールを考慮してはくれないので、そのままでは問題が出る場合があります。これを回避するための方法を示します。 Excelアドインプロジェクトを新規に作成し、カスタム作業ウインドウを実装します…

印刷不可にする

印刷不可にする(Excel編) Excelアドインプロジェクトを新規に作成します。 ThisAddIn.csのコードを開き、スタートアップイベントハンドラ(ThisAddIn_Startup)に、印刷をキャンセルするコードを追加します。 変更を加えたコードは以下となります。 private vo…

Excelのセル操作

文字とセル Excelアドインプロジェクトを新規に作成します。 セルのダブルクリックに対応するイベントハンドラを実装します。 private void ThisAddIn_BeforeDoubleClick(object s, Excel.Range Target, ref bool Cancel) { } 作成したイベントハンドラを登…

オートシェイプ

オートシェイプの作成(Excel編) オートシェイプの作成は、Excel.Shapesクラスの各メソッドを使用して行います。ここでは、代表的な3つのメソッドについて、具体例を示します。 AddShapeメソッド Excelブックプロジェクトを選択し、ドキュメントを新規に作成…

コントロールとドキュメントの連携

コントロールからドキュメントへのドラッグ&ドロップ 新規にExcel 2007 ブックプロジェクトを作成し、カスタム作業ウインドウを作成します。カスタム作業ウインドウにラベルを配置し、複数行にまたがるテキストを表示させておきます。 まず、テキストのクリ…

リボン

カスタムリボンの追加(ビジュアルデザイナ) [ファイル]⇒[新規作成]⇒[プロジェクト]⇒[Excel 2007 アドイン]を選択し、OKを押します。 [プロジェクト]⇒[ユーザーコントロールの追加]⇒[新しい項目の追加]⇒[ユーザーコントロール]を選択し、追加を押します。 コ…

カスタム作業ウインドウ

アプリケーションレベルのカスタム作業ウインドウ(アクションペイン) [ファイル]⇒[新規作成]⇒[プロジェクト]⇒[Excel 2007 アドイン]を選択し、OKを押します。 [プロジェクト]⇒[ユーザーコントロールの追加]⇒[新しい項目の追加]⇒[ユーザーコントロール]を選択…

作成したVSTOアプリケーションをmsi形式で配布する

セットアッププロジェクトの作成 既存のVSTOソリューションを開き、新しいプロジェクトを追加します。 [その他のプロジェクトの種類]⇒[セットアップと配置]⇒[セットアッププロジェクト]を選択します。 OKボタンで確定すると、セットアッププロジェクトが作成…

作成したVSTOアプリケーションをClickOnceで配布する

ウィザードを用いて発行 適当なVSTOアプリケーションのソリューションを開いた後で、Officeドキュメントを含むプロジェクトの右クリックメニューから、[発行]を選択します。 すると、ウィザード形式での設定が始まります。 アプリケーションの発行場所はデフ…

プライマリ相互運用アセンブリ

プライマリ相互運用アセンブリとは? プライマリ相互運用アセンブリとは、Microsoft Office アプリケーションのCOMベースのオブジェクトモデルと、.NET Frameworkのマネージドコードを相互運用出来るように橋渡しをしてくれるアセンブリの総称です。 VSTOで…

OutlookでHello World!

プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]からOutlookアドインを選択し、プロジェクトを作成します。 Outlookフォーム領域の追加 ソリューションエクスプローラの右クリックメニューから、[追加]⇒[新しい項目]を開きます。 以下のようなダイ…

ExcelでHello world!

プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]からExcelブックを選択し、プロジェクトを作成します。 新規ドキュメントを選択し、ドキュメント形式*1を「Excelマクロ有効ブック」にします。 イベントハンドラの実装 Sheet1.csのコードを表示し、…

WordでHello world!

プロジェクトの作成 [ファイル]⇒[新規作成]⇒[プロジェクト]からWordドキュメントを選択し、プロジェクトを作成します。 新規ドキュメントを選択し、ドキュメント形式*1を「Wordマクロ有効文書」にします。 以下の警告が出ますが、「OK」を選択します。 これ…

VSTOとは?

Visual Studio Tools for the Office System Visual Studio Tools for the Office System(VSTO)は、Microsoft Office製品をフロントエンドにしたアプリケーションを、.NET Frameworkで開発可能にするソリューションです。最初のバージョンは、Visual Studio …