ベクトルドロー・レベルゼロ+

ホーム > コンピュータ > C# > WPF in C#

ホスト統合のVSTAサンプル プロジェクトの保存と読込[C#]

作成日 2015.06.06
最終更新日 2015.06.06

概要

Visual Studio Communityが無償で使えるようになったので、Expressエディションで使えなかった機能が使えるようになりました。 Microsoft Visual Studio Tools for Applications(VSTA)は、 VBAやC#を使ったマクロ機能をアプリケーションに組込むことができる機能です。

VSTA Sample Host Integration.docは、SDKをダウンロードする際、一緒にダウンロードすることができます。

インストール

VSTA2013とVSTA2012SDKをインストールします。

ダウンロード先

Microsoft Visual Studio Tools for Applications 2013(VSTA)(外部サイト)

Microsoft Visual Studio Tools for Applications 2012 SDK(外部サイト)

ホスト統合のVSTAサンプル

[VSTA Sample Host Integration]

プロジェクトの保存と読込

Saving and Loading a Project

ファイルからプロジェクトを保存し、読み込むには、まず、あなたは、VSTA IProjectStorageインターフェースを実装するクラスを作成する必要があります。 IProjectStorageは、どんな項目も名前によって検索でき、ストリームに戻すことができる、単純な仕組みです。 これは、バイナリのテーブルや仮想のファイルシステムと同じように、単純です。1つのIProjectStorageは、それぞれのプロジェクトで関連付けられています。 そして、項目の名前は、複数のプロジェクト全体で、固有であると保証されていません。 次に示す例は、MyProjectStorageクラスのIProjectStorageを実装します。Visual Studioで、次の手順を実行します。:

  1. あなたのプロジェクトに、「MyProjectStorage」という名前のクラスを追加します。
  2. 次のステートメントを追加します。:
  3. using System.IO;
    using VSTA = Microsoft.VisualStudio.Tools.Applications;
    
  4. あなたのプロジェクトのすべての項目のための補助記憶装置として、ファイルシステムを使用するために、IProjectStorageを実装します。:
  5. class MyProjectStorage : VSTA.IProjectStorage
        {
            string _rootDirectory;
            public MyProjectStorage(string pathRoot)
            {
                _rootDirectory = pathRoot;
            }
    
            public bool ItemExists(string itemName)
            {
                string fileName = System.IO.Path.Combine(_rootDirectory, itemName);
                return System.IO.File.Exists(fileName);
            }
    
            public System.IO.Stream OpenItem(string itemName, bool writeAccess)
            {
                string fileName = System.IO.Path.Combine(_rootDirectory, itemName);
                System.IO.FileMode mode;
                if (writeAccess)
                    mode = System.IO.FileMode.OpenOrCreate;
                else 
                    mode = System.IO.FileMode.Open;
                return System.IO.File.Open(fileName, mode);
            }
        }
    
    
  6. あなたのフォ-ムに「Save」という名前のボタンを追加します。そして、ボタンに、イベントハンドラを追加します。
  7. イベントハンドラに、次に示すコードを追加します。:
            if (_project != null)
            {
                MyProjectStorage outputProject = new MyProjectStorage("ProjectName");
                _project.Save(outputProject);
            }

ユーザーが、あなたのフォ-ムで「Save」ボタンを選択すると、プロジェクトとすべてのその項目は、 アプリケーションの現在の作業ディレクトリの下の、「ProjectName」という名前のフォルダに保存されます。 それらが、アプリケーションの、現在の作業ディレクトリの中に存在しない場合、 あなたは、「ProjectName」フォルダと「Properties」フォルダを作成する必要があるかもしれません。

備考:

保存された項目のデータは、多くの場合、テキストとして読込むことができます。 しかし、厳格なフォーマットとエンコーディングは、VSTAの実装に依存して、変更されることがあります。 VSTAによって保存されるすべてのデータは、ホスト・アプリケーションで「不透明」と扱われます。 VSTAプロジェクトは、ホスティングAPIを通して開く必要があります。(Microsoft.VisualStudio.Tools.Applicationsや管理されていない等価物)。

ページトップへ
WPF in C#
C#トップ
Copyright (C) 2011-2016 kukekko All Rights Reserved.
kukekko@gmail.com
ご連絡の際はアドレスの@は半角にしてください。 また、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません 」。
inserted by FC2 system