• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【.NET】WordのテキストボックスのCharactersを探しております)

【.NET】WordのテキストボックスのCharactersを探しております

このQ&Aのポイント
  • VB.NETからWordのテキストボックスをいじっております。試しにExcelで動かしてみると、Shape.TextFrame.TextRange.Charactersでやりたいことができるのですが、Wordの場合、Shape.TextFrame.TextRange.とShape.TextFrame.のどちらにもCharactersが見つからないと言われており、悩んでおります。
  • VB2008でWord2007をいじろうとしておりますが、お詳しい方がいらっしゃいましたら、アドバイスをいただけないでしょうか。また、メンバやプロパティを探すのに四苦八苦することがあるのですが、こんな風に調べるといいよ、みたいなのがもしもございましたら、皆様のお知恵を拝借いたしたくお願いいたします。
  • 質問させていただきます。VB.NETからWordのテキストボックスをいじっております。Excelで試してみたところ、Shape.TextFrame.TextRange.Charactersを使用するとやりたいことができることがわかりました。しかし、Wordの場合にはShape.TextFrame.TextRange.とShape.TextFrame.のどちらにもCharactersが見つからないというエラーが出てしまい、困っています。VB2008でWord2007をいじる際のアドバイスがあれば教えていただきたいです。また、メンバやプロパティを探す方法についてもアドバイスが欲しいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Word2007持ってないからどうとも言えないけど, http://msdn.microsoft.com/en-us/library/bb211612.aspx TextRangeプロパティはRangeオブジェクトを返し, http://msdn.microsoft.com/en-us/library/bb239067.aspx RangeオブジェクトにはFontオブジェクトを返すFontプロパティがあって http://msdn.microsoft.com/en-us/library/bb211946.aspx FontオブジェクトにはBooleanを返すSuperScriptプロパティがあるからここから行けるかな。 >メンバやプロパティを探すのに四苦八苦する ことがあるのですが ないんじゃない?俺もかなり勘で探して苦労している。 今後も過去との互換性の問題からこれらのインターフェースは残り続けるだろう。.NET以前からのものだろうから統一感がなくて苦労するんだよね…。 (先の質問のExcel 2007のCharactersプロパティもSystem.Collections.Generic.List<T>を返してくれればなあ…)

camputer
質問者

お礼

 himajin100000 様  どうもありがとうございます! No.2の方にNo.1分もまとめてお礼を書かせていただきます. よろしくお願いします.

camputer
質問者

補足

 himajin100000 様  No.1,No.2のご回答をいただきどうもありがとうございました!  結局何故「公開メンバ 'Characters' は型 'Range' に見つかりませんでした。」となるのか よくわかりませんでしたが(力不足でございますorz), No.2でご紹介いただけたMSDNのページ左のツリーのおかげで,他のコーディングが かなり進みました.どうもありがとうございます. ちょうど >メンバやプロパティを探すのに四苦八苦する~ のアドバイスをいただけた形になったようです^^  今後閲覧してくださる方々はおそらく回答No.1が役に立つと思うので, No.1に20ptで締め切らせていただきます.  今回も大分力になりました.心よりお礼申し上げます.  どうもありがとうございました.

その他の回答 (1)

回答No.2

あ、勘違いしていた。撤回する。そっか前回同様文字単位でやらないといけないのか。 でも,載っているんだけどなあ http://msdn.microsoft.com/en-us/library/bb238893.aspx

camputer
質問者

お礼

 himajin100000 様  どうもありがとうございます! No.1,のお礼もまとめてこちらに書かせていただきます.  なにより,Superscriptの事に気づいていただけて本当にありがとうございます. 驚きましたw m(_ _)m 心より感謝申し上げます. >前回同様文字単位でやらないといけないのか  そうなんでございますorz   上付き(iNum) = myRng.Characters(Start:=iNum, Length:=1).Font.Superscript のようにしてしまいたいのでございますが...  ご提示いただけたページはおそらく,Word文書のRangeではないかと.. テキストボックスの文字列につきましては, Shape.TextFrame.TextRange.Textで取得できております.  前回アドバイスいただきましたエクセルの場合, Shape.TextFrame2.TextRange.Charactersがあるのですが, Wordで同様にすると,TextFrame2がとれず,  Dim myTextFrame As Object = myShape.TextFrame2 の時点で「メソッドまたは操作は実装されていません。」とエラーになってしまいます.  Dim myTextFrame As Object = myShape.TextFrame だと通るのですが,そこからどうやればCharactersがとれるのか 悩んでおります.......  おそらく,↓これか http://msdn.microsoft.com/en-us/library/bb259494.aspx もしくは,他のShape~の名で始まっているオブジェクトの中のどこかに あるのだと思うのでございますが...  度々アドバイスをいただいておりますが,もしこの後も何かお気づきに なることがございましたら,是非ともよろしくお願いいたします.  お詳しい方に見ていただけて光栄でございます. どうもありがとうございます.

関連するQ&A