この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 4526|答える: 2

[出典] VSTO(2) Word Chinese文字長選択プラグインを入手

[リンクをコピー]
掲載地 2023/04/30 20:53:15 | | | |
要件:Office用の簡単なプラグイン、例えばWordの中国語文字長プラグインをVSTOで開発してください。

ワードオブジェクトモデル

Wordは何百ものオブジェクトとやり取りできる。 これらのオブジェクトはユーザーインターフェースに厳密に従う階層構造で組織されています。 アプリケーションオブジェクトは階層の最上位にあります。 このオブジェクトは現在のWordインスタンスを表します。 アプリケーションオブジェクトには、ドキュメント、セレクション、ブックマーク、レンジの各オブジェクトが含まれています。 これらのオブジェクトそれぞれには、オブジェクトを操作し相互作用するための複数の方法や特性があります。

以下の画像は、Wordオブジェクトモデル階層におけるこれらのオブジェクトのビューを示しています。



ドキュメンテーション:ハイパーリンクのログインが見えます。

アプリケーションオブジェクト

アプリケーションオブジェクトはWordアプリケーションを表し、他のすべてのオブジェクトの親です。 その構成員は通常、Word全体に適用されます。 そのプロパティやメソッドを使ってWordの環境を制御できます。

VSTOアドインプロジェクトでは、アプリケーションクラスのアプリケーションフィールドを使ってThisAddInオブジェクトにアクセスできます。

ドキュメントレベルのプロジェクトでは、ThisDocumentオブジェクトはアプリケーションクラスのアプリケーションプロパティを使ってアクセスできます。

ドキュメントオブジェクト

ドキュメントオブジェクトはWordプログラミングの中心です。 それは文書とそのすべての内容を表します。 ドキュメントを開くか新しいドキュメントを作成すると、新しいドキュメントオブジェクトが作成され、ドキュメントオブジェクトのアプリケーションコレクションに追加されます。 焦点のある文書はアクティブ文書と呼ばれます。 これはActiveDocumentオブジェクトのアプリケーションプロパティで表現されます。

ドキュメントレベルのプロジェクトを作成する際、プロジェクト内で生成されるDocumentクラスを使ってThisDocumentメンバーにアクセスできます。 ThisDocument オブジェクトは、Document クラス内のコードに対して Me または this キーワードを使うか、ThisDocument クラス外のコードに対して Globals.ThisDocument を使うことでアクセスできます。

選択対象

Selectオブジェクトは現在選択されている領域を表します。 Wordのユーザーインターフェースで太字表示などの操作を行う際には、テキストを選択したりハイライトしたりしてから書式を適用できます。 Selectオブジェクトは常にドキュメント内に存在します。 何もチェックされなければ挿入ポイントを示します。 さらに、選択されたコンテンツには複数の隣接しないテキストブロックが含まれていることもあります。

レンジオブジェクト

レンジオブジェクトは文書内の隣接する領域を表し、開始文字と終了文字の位置によって定義されます。 単一のレンジオブジェクトに限定されていません。 同じドキュメント内で複数のRangeオブジェクトを定義できます。 レンジオブジェクトは以下の特性を持ちます:

  • 挿入ポイントは個別に含む場合もあれば、テキストの範囲内や文書全体を含む場合もあります。
  • スペース、タブ、段落マーカーなどの印刷されていない文字も含まれます。
  • 現在選択されているコンテンツが表すエリアであったり、このコンテンツと異なるエリアであったりします。
  • 選択されたコンテンツは常に見えるのに対し、ドキュメント内では見えません。
  • ドキュメントには保存されず、コードが実行中にのみ存在します。
  • テキストが範囲の最後に挿入されると、Wordは自動的に挿入されたテキストを含む範囲を拡張します。


コンテンツ制御オブジェクト(Content Control Objects)

ContentControlは、Word文書内のテキストやその他のコンテンツの入力とレンダリングを制御する方法を提供します。 ContentControlは、Word文書で使えるように最適化された多様なUIを表示できます。例えば、マルチメッセージテキストコントロール、日付選択機能、コンボボックスなどです。 また、ContentControlを使って、ユーザーが文書やテンプレートの特定のセクションを編集するのを防ぐこともできます。

Visual StudioはContentControlオブジェクトを複数の異なるホストコントロールに拡張します。 ContentControlオブジェクトはコンテンツコントロール用に利用可能なすべての異なるUIタイプを表示しますが、Visual Studioはそれぞれのコンテンツコントロールごとに異なるタイプを提供します。 例えば、RichTextContentControlを使ってマルチメッセージのテキストコントロールを作成したり、DatePickerContentControlを使って日付選択ツールを作成したりできます。 これらのホストコントロールはネイティブのContentControlsと似た動作をしますが、追加のイベントやデータバインディング機能も備えています。

ブックマークオブジェクト

ブックマークオブジェクトは、開始位置と終了位置の両方を持つ文書内の隣接する領域を表します。 ブックマークは文書内の場所を示すために使うか、中国語版の文書のコンテナとして使うことができます。 ブックマークオブジェクトは挿入ポイントを含む場合もあれば、ドキュメント全体の大きさに相当するものもあります。 ブックマークはレンジオブジェクトと区別される以下の特徴を持っています。

  • デザインする際にブックマークに名前を付けることができます。
  • ブックマークオブジェクトはドキュメントと一緒に保存されるため、コードの実行停止やドキュメントが閉じても削除されません。
  • Viewプロパティにアクセスするには、Viewプロパティをfalseまたはtrueに設定します。
  • Visual StudioはBookmarkオブジェクトを拡張し、Bookmarkホストコントロールを提供します。 ブックマークホストのコントロールはネイティブのブックマークと似ていますが、追加のイベントやデータバインディング機能も備えています。 Windowsフォームのテキストボックスコントロールにデータを割り当てるのと同じように、ドキュメントのブックマークコントロールにデータをバインドできます。


Word VSTOアドインを作成してください

基本概念を理解したら、VS 2022を開いて新しいWord VSTOアドインを作成します。下の図に示されています。



以下の図に示されるように視覚的なリボンを作成しましょう:



Ribbon1.csをダブルクリックして開き、デフォルトのタブを外し、新しいタブをドラッグすると以下の通りです:



グループとボタンコントロールを新しいタブタブにドラッグします。以下のように:



新しく作成したボタンボタンをダブルクリックして、以下のコードでクリックイベントを作成します:



(終わり)





先の:VSTO(1) 簡単な紹介と開発ツール
次に:VSTO(III)はWord文書にDataTableデータを挿入します
 地主| 掲載地 2023/04/30 23:32:31 |
VSTO(1) 簡単な紹介と開発ツール
https://www.itsvse.com/thread-10573-1-1.html

VSTO(2) Word Chinese文字長選択プラグインを入手
https://www.itsvse.com/thread-10574-1-1.html

VSTO(III)はWord文書にDataTableデータを挿入します
https://www.itsvse.com/thread-10575-1-1.html
掲載地 2023/05/02 10:30:48 |
学ぶために
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com