- PR -

VSTO 2005 でスマートタグの挙動に納得がいかない

1
投稿者投稿内容
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-05-13 21:59
お世話になります。ueです。

Visual Studio 2005 の VSTO で Excel を操作して遊んでいます。
スマートタグの挙動に納得がいかない部分があります。

動作環境:
Windows XP SP2
Visual Studio 2005 Team Edition for Software Developers
C#

[Excel ブック]プロジェクトを作成し、スマートタグを定義しました。
コード:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
Microsoft.Office.Tools.Excel.SmartTag smartTag
= new Microsoft.Office.Tools.Excel.SmartTag("http://www.example.local/test#testTag", "スマートタグ");
smartTag.Terms.Add("microsoft");
smartTag.Terms.Add("マイクロソフト");
smartTag.Expressions.Add(new System.Text.RegularExpressions.Regex("エムエス"));
smartTag.Actions
= new Microsoft.Office.Tools.ActionBase[] { new Microsoft.Office.Tools.Excel.Action("選択肢1") };
this.VstoSmartTags.Add(smartTag);
}


認識させたいテキストのうち、Termsプロパティに追加した "microsoft" と Expressionsプロパティに追加した "エムエス" は実行時に認識されスマートタグが表示されますが、Termsプロパティに追加した "マイクロソフト" は認識されません。

Termsプロパティについて他の語句でも試してみました。
・いわゆる半角アルファベットのみで構成された文字列 "abc" > 認識される
・いわゆる半角数字のみで構成された文字列 "123" > 認識される
・混合の文字列 "abc123" > 認識されない(Expressionsプロパティを使えば認識される)
・記号 "(-]" > 認識されない(Expressionsプロパティを使えば認識される)

この挙動は、これで正常なのでしょうか。

*動作環境を追記しました。失礼しました。

[ メッセージ編集済み 編集者: ue 編集日時 2006-06-24 11:04 ]
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-23 22:45
ueです。こんばんは。

上の投稿の内容について、VSTO 2005 の不具合の可能性があるならマイクロソフトにフィードバックしようと思います。

しかし、この件が不具合ではなく、私の勘違いである虞もあります。
どなたかご意見を頂けませんでしょうか。

上の投稿のコードに下記のコードを追記して実行すると予想通り "microsoft", "マイクロソフト" の2語が返ります。
StringCollectionクラスの Addメソッドに問題があるわけではないことは分かりました。
コード:
System.Collections.Specialized.StringEnumerator stringEnumerator = smartTag.Terms.GetEnumerator();
while (stringEnumerator.MoveNext())
        MessageBox.Show(stringEnumerator.Current);



また、以下のように日本語や記号が1文字の場合は正常にというか、私の期待通りにスマートタグが反応します。
コード:
smartTag.Terms.Add("マ");
smartTag.Terms.Add("(");



よろしくお願いします。
1

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