Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1936 / 13645 ツリー ←次へ | 前へ→

【70954】テキストボックスのテキスト内容取得 saya 12/1/20(金) 23:01 質問[未読]
【70956】Re:テキストボックスのテキスト内容取得 かみちゃん 12/1/20(金) 23:12 発言[未読]
【70962】Re:テキストボックスのテキスト内容取得 saya 12/1/21(土) 11:54 質問[未読]
【70957】Re:テキストボックスのテキスト内容取得 kanabun 12/1/20(金) 23:30 発言[未読]
【70963】Re:テキストボックスのテキスト内容取得 saya 12/1/21(土) 11:57 お礼[未読]

【70954】テキストボックスのテキスト内容取得
質問  saya  - 12/1/20(金) 23:01 -

引用なし
パスワード
   シート上に多量のテキストボックスを配置して、すべてのオートシェイプからテキストを取得したいのですが、うまくいきません。記述したコードは以下のとおりです。

  For Each sp In ActiveSheet.Shapes
    ct = ct + 1
    Sheets("Sheet2").Range("B" & ct) = sp.Characters.Text
  Next

sp.Characters.Textがだめならと、sp.value、sp.textboxなど思いつくものを記述したのですが、どれもテキストを拾ってくれませんでした。
Characters.Textでテキストボックスにテキストを書き込めたので、Characters.Textが使えないのも不思議です。
どのようにすればいいか教えていただけないでしょうか。
お願いします。

【70956】Re:テキストボックスのテキスト内容取得
発言  かみちゃん  - 12/1/20(金) 23:12 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>シート上に多量のテキストボックスを配置して、すべてのオートシェイプからテキストを取得したい

sp.TextFrame.Characters.text
でいかがでしょうか?

【70957】Re:テキストボックスのテキスト内容取得
発言  kanabun  - 12/1/20(金) 23:30 -

引用なし
パスワード
   ▼saya さん:
>シート上に多量のテキストボックスを配置して、すべてのオートシェイプからテキストを取得したいのですが、
テキストが挿入されている図形だけを Loopしたらどうですか

Dim tBox as object
Dim ct As Long
  For Each tBox In ActiveSheet.TextBoxes
>    ct = ct + 1
     Sheets("Sheet2").Range("B" & ct) = tBox.Text
>  Next
>

【70962】Re:テキストボックスのテキスト内容取得
質問  saya  - 12/1/21(土) 11:54 -

引用なし
パスワード
   ▼かみちゃん さん:
回答ありがとうございます。
sp.TextFrame.Characters.textで取得できました。
でも「TextFrame」が必要なのはなぜなのでしょうか。
下記のコードでテキストを書き込んだのですが
  ActiveSheet.Shapes("Text Box 406").Select
  Selection.Characters.Text = "c2.1A"
ここにはTextFrameが見えないので必要だと気づきませんでした。
私の理解には何が不足しているのでしょうか。
どうもプロパティの仕組みがよくわかりません。

【70963】Re:テキストボックスのテキスト内容取得
お礼  saya  - 12/1/21(土) 11:57 -

引用なし
パスワード
   ▼kanabun さん:
教えていただいた方法のほうがシンプルでよさそうです。こちらを使用します。
ありがとうございます。

1936 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free