tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcel2007のShape.TextFrame2.TextRangeの型が分かりません
記事No9387
投稿日: 2009/09/10(Thu) 19:02
投稿者camputer
 こんばんは,camputerと申します.
プログラム歴役10年+VB歴1年弱です。どうぞよろしくお願いいたします。
開発環境はVista+VB2008+Excel2007になります。

 Excelで,

Dim myTextFrame As Excel.TextFrame2 = myShape.TextFrame2
Dim myTextRange As ??? = myTextFrame2.TextRange

と,Shape.TextFrame2.TextRangeの型指定を行いたいのですが,
「???」の部分が分かりません...
今まで As Object = ですべてごまかしておりまして,一応動作はしておりましたが,
きちんと型指定した方がExcelが解放されやすい?のかなと思ったので
修正しております.

 MSDNで「textframe2 textrange」してもVBAが1件出てきただけで,
自分の検索ネットワークだけでは情報が少なく解決に至りませんでした.
何卒よろしくお願いいたします.

[ツリー表示へ]
タイトルRe: Excel2007のShape.TextFrame2.TextRangeの型が分かりません
記事No9388
投稿日: 2009/09/10(Thu) 20:15
投稿者魔界の仮面弁士
> と,Shape.TextFrame2.TextRangeの型指定を行いたいのですが,
> 「???」の部分が分かりません...

As Office.TextRange2 とか。

[ツリー表示へ]
タイトルRe^2: Excel2007のShape.TextFrame2.TextRangeの型が分かりません
記事No9389
投稿日: 2009/09/10(Thu) 21:00
投稿者camputer

 魔界の仮面弁士 様

 どうもありがとうございます!!解決いたしました! すごい.一瞬で...w^^

 以前,花ちゃんで質問させていただきました「Subroutineの引数が原因で
Excelが開放できなくなります。」の中で,魔界の仮面弁士様からアドバイスいただけました
> それぞれの引数に、As で正しい型を指定してください。
>
> 暗黙の型変換が発生すると、そこで参照カウントが増大してしまう可能性があるため、
> 解放処理が複雑化してしまいます。
が記憶に残りまして,サブルーチンの引数以外も同じ考え方で応用されるべきはず.などと
考え,本質問をさせていただくに至った次第でございます.

 しかし,「Excel.〜 のはず」と思い込んでおりましたのでText関連やRange関連を
すべて試してみたり,.GetTypeしても分からず悩みました...

 VB界で超有名な方からこんなにアドバイスいただけて嬉しいです.どうもありがとうございました!!!

[ツリー表示へ]
タイトルRe^3: Excel2007のShape.TextFrame2.TextRangeの型が分かりません
記事No9390
投稿日: 2009/09/10(Thu) 21:06
投稿者魔界の仮面弁士
> 解決いたしました!

調査方法:

(1) Excel を起動します。
(2) Alt + F11 を押して、VBA エディタ画面に移動します。
(3) F2 を押して、オブジェクト ブラウザを表示させます。
(4) 検索ボックスに TextFrame2 と入力するなどして、TextFrame2 クラスを探します。
(5) TextFrame2 の TextRange メンバをクリックします。
(6) 画面下部に、『Property TextRange As TextRange2』と表示されます。
(7) As TextRange2 の部分にある、緑色のリンクをクリックします。
(8) TextRange2 クラスが、Office ライブラリに属している事が分かります。


以上、6〜8 の部分から、TextFrame2.TextRange の戻り値が
Office.TextRange2 型であるという事がわかります。

[ツリー表示へ]
タイトルRe^4: Excel2007のShape.TextFrame2.TextRangeの型が分かりません
記事No9391
投稿日: 2009/09/10(Thu) 21:43
投稿者camputer

 魔界の仮面弁士 様

 どうもありがとうございます!!早速今試してみました!
こんな便利なやり方は知りませんでしたm(_ _)m
(オブジェクトブラウザの表示方法さえ知りませんでした^^;
VBAは好きなのでよくいじっているはずなんですが...
これらはてっきり,最近ようやく理解でき始めたMSDNの
左側のツリーから探すものなのかと...)

 Word2007もPPT2007も一覧表示できるんですねー.
今から,怪しかったところや時間をかけてGoogleで検索していたところを
全部見直してみます.楽しみです^^

 問題解決後も閲覧・アドバイスいただき本当にどうもありがとうございます.
今回いただけたコメントでまたパワーアップします.
 どうもありがとうございました!!

[ツリー表示へ]