- PR -

C# Excelのプロパティ>ユーザ設定を扱う方法

投稿者投稿内容
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-07-13 10:02
先日はお世話になりました。

今、VSTOでExcelブックを作成しております。
次のような作業をプログラムできないだろうか、
と悩んでいます。

Excelのプロパティ>>[ユーザー設定]タブに任意のプロパティを書き込む

Workbookクラスを一通りウォッチしてみたのですが
まったく検討が付いておりません。

どうかお知恵のほどお貸しいただけないでしょうか。
よろしくお願いいたします。
カルガモ
常連さん
会議室デビュー日: 2006/06/27
投稿数: 20
投稿日時: 2006-07-13 11:04
こんにちは。

以下のサイトは参考になるでしょうか?
MSDN
http://www.microsoft.com/japan/msdn/officedev/vsto2003/ExcelObj.asp
VSTOフォーラム
http://vsug.jp/tabid/63/view/topics/forumid/54/Default.aspx
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-13 11:12
引用:

あすかさんの書き込み (2006-07-13 10:02) より:

今、VSTOでExcelブックを作成しております。
次のような作業をプログラムできないだろうか、と悩んでいます。
Excelのプロパティ>>[ユーザー設定]タブに任意のプロパティを書き込むWorkbookクラスを一通りウォッチしてみたのですがまったく検討が付いておりません。


Microsoft.Office.Tools.Excel.Workbook.CustomDocumentProperties プロパティ ですね。
ここから、DocumentProperties インターフェイスのインスタンスが取得できますから、
あとはインデクサから "グループ" など、直接プロパティ名を指定します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-13 11:13
こんにちは。

MSDN ライブラリに 方法 : カスタム ドキュメント プロパティを作成および変更する という Workbook.CustomDocumentProperties プロパティ を利用するチュートリアルが載っています。
これではないでしょうか。

*追記
じゃんぬねっとさんと被ってしまいました。
失礼しました。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for Microsoft Office System - Microsoft Office System
(Jul 2006 - Jun 2007)
Hello Another World!

[ メッセージ編集済み 編集者: ue 編集日時 2006-07-13 11:41 ]
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-07-13 15:38
皆様、ご助言ありがとうございます。

教えていただいたページを拝見したとこと
Microsoft.Office.Tools.Excel.Workbook.CustomDocumentProperties
を使えばいいらしいことが分りました。

私はExcelの操作には
Microsoft.Office.Interop.Excel
を使うのだと思っており
実際、ブック a.xls のアクセスに
Interop.Excel.Application app = new Interop.Excel.Application();
Interop.Excel.Workbooks activeWorkbooks = app.Workbooks;
Interop.Excel.Workbook activeWorkbook = activeWorkbooks.Open(@"a.xls",
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
として、アクセスするのだと思っております。

Microsoft.Office.Tools.Excel
を使ってa.xlsの情報にアクセスすることが可能なのでしょうか。
それとも考え方が間違っているのでしょうか。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-13 15:56
引用:

あすかさんの書き込み (2006-07-13 15:38) より:

Microsoft.Office.Tools.Excel を使ってa.xlsの情報にアクセスすることが可能なのでしょうか。


まずは、リファレンスを見てください。

  Microsoft.Office.Tools.Excel 名前空間

WorkBook クラスのところの説明を見ると、だいたいの謎は解けるかと思います。

繰り返しになりますが、Workbook クラスの CustomDocumentProperties プロパティから、
DocumentProperties コレクションを取得してください。

そのコレクションのインデクサの引数に、取得したいプロパティ名を渡せば、内容が取得できます。
(たとえば、「タイピスト」 ならば、"タイピスト" という文字列を渡します)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-07-13 16:03
Tools.Excel.WorkbookがInterop.Excel.Workbook
を表しているということが分りますが
オブジェクト自体は別のもののようです。

何か変換する手立てがあるのでしょうか。

[ メッセージ編集済み 編集者: あすか 編集日時 2006-07-13 16:20 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-13 16:35
引用:

あすかさんの書き込み (2006-07-13 16:03) より:

Tools.Excel.WorkbookがInterop.Excel.Workbookを表しているということが分りますがオブジェクト自体は別のもののようです。
何か変換する手立てがあるのでしょうか。


どちらも、CustomDocumentProperties メンバは存在していると思いますが、
別のものというのは、実際には、'どの型' のオブジェクトだったのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)