C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VSTO2005SEについてです


(過去ログ 95 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■56749 / inTopicNo.1)  VSTO2005SEについてです
  
□投稿者/ okada (1回)-(2011/01/29(Sat) 03:42:24)

分類:[C#] 

私は今、VSTO2005SEでWord2007のアドインを開発中です。
今開いているドキュメントにオートシェイプを挿入しようとしているのですが
うまくいきません。イベントハンドラを作り、その中を

private void button2_Click(object sender, MouseEventArgs e)
{
Word.ShapeRange shape1 = Globals.ThisAddIn.Application.Selection.ShapeRange;
object oMissing = Globals.ThisAddIn.Application.Selection.Range;
Word.Shape shape = Globals.ThisAddIn.Application.ActiveDocument.Shapes.AddShape(149,50f, 50f, 50f, 50f, ref oMissing);
}

という風にShapes.AddShapeメソッドを利用しているのですが、6つ目の引数が悪いようで
指定された値は境界を超えています。
と言われてしまいます。
何かいい方法はないでしょうか?
また、オートシェイプを挿入するいい方法はないでしょうか?
引用返信 編集キー/
■56751 / inTopicNo.2)  Re[1]: VSTO2005SEについてです
□投稿者/ じゃんぬねっと (26回)-(2011/01/29(Sat) 06:42:08)
No56749 (okada さん) に返信
> 私は今、VSTO2005SEでWord2007のアドインを開発中です。
> 今開いているドキュメントにオートシェイプを挿入しようとしているのですが
> うまくいきません。イベントハンドラを作り、その中を
> 
>         private void button2_Click(object sender, MouseEventArgs e)
>         {
>             Word.ShapeRange shape1 = Globals.ThisAddIn.Application.Selection.ShapeRange;
>             object oMissing = Globals.ThisAddIn.Application.Selection.Range;
>             Word.Shape shape = Globals.ThisAddIn.Application.ActiveDocument.Shapes.AddShape(149,50f, 50f, 50f, 50f, ref oMissing);
>         }
> 
> という風にShapes.AddShapeメソッドを利用しているのですが、6つ目の引数が悪いようで
> 指定された値は境界を超えています。
> と言われてしまいます。
> 何かいい方法はないでしょうか?
> また、オートシェイプを挿入するいい方法はないでしょうか?

えーっと、たった 3 行のコードですが、1 行 1 行の意味をご自身で説明することはできますか?
たとえば shape1 は意味があるのかとか、oMissing の値はどうなっているのかとか...

とはいえ、アドインとなると他にも心配な点がありますので、
とりあえず、お試しに AddPicture() メソッドでは正しく動作をするかご確認ください。

Word.Document activeDocument = Globals.ThisAddIn.Application.ActiveDocument;

if (activeDocument != null) {
    activeDocument.Shapes.AddPicture(@"C:\酉頭の人は病気.jpg");
}

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -