Excel VBA質問箱 IV

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

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


1552 / 13644 ツリー ←次へ | 前へ→

【73501】テキストボックスの文字をセルに書き込む ブーチー 13/1/16(水) 14:42 質問[未読]
【73503】Re:テキストボックスの文字をセルに書き込む UO3 13/1/16(水) 15:06 発言[未読]
【73570】Re:テキストボックスの文字をセルに書き込む ブーチー 13/1/23(水) 8:23 お礼[未読]
【73504】Re:テキストボックスの文字をセルに書き込む UO3 13/1/16(水) 15:18 発言[未読]

【73501】テキストボックスの文字をセルに書き込む
質問  ブーチー  - 13/1/16(水) 14:42 -

引用なし
パスワード
   シートにテキストボックスがペタペタと貼られています。
このテキストボックスに書かれている文字を取り出し、
テキストボックスの左上の位置にあるセルに書き込みたいのです。

テキストボックスの大きさや文字数はバラバラです。

お分かりの方、よろしくお願いいたします。

【73503】Re:テキストボックスの文字をセルに書き...
発言  UO3  - 13/1/16(水) 15:06 -

引用なし
パスワード
   ▼ブーチー さん:

▼ブーチー さん:

そのテキストボックスがオートシェープのテキストボックスであれば。

Sub Sample()
  Dim tx As TextBox
  For Each tx In ActiveSheet.TextBoxes
    tx.TopLeftCell.Offset(-1, -1).Value = tx.Text
  Next
End Sub

【73504】Re:テキストボックスの文字をセルに書き...
発言  UO3  - 13/1/16(水) 15:18 -

引用なし
パスワード
   ▼ブーチー さん:

もしテキストボックスがActiveX(コントロールツールボックスのテキストボックス)なら。

Sample3 は、セルへの値セットではなくLinkさせる方式です。
この場合、テキストボックス<->セルの【双方向】になります。
(セルに入力すればテキストボックスに書き込まれる)

Sub Sample2()
  Dim tx As Object
  
  For Each tx In ActiveSheet.OLEObjects
    If TypeName(tx.Object) = "TextBox" Then tx.TopLeftCell.Offset(-1, -1).Value = tx.Object.Text
  Next
  
End Sub

Sub Sample3()
  Dim tx As Object
  
  For Each tx In ActiveSheet.OLEObjects
    If TypeName(tx.Object) = "TextBox" Then tx.LinkedCell = tx.TopLeftCell.Offset(-1, -1).Address(0, 0)
  Next
  
End Sub

【73570】Re:テキストボックスの文字をセルに書き...
お礼  ブーチー  - 13/1/23(水) 8:23 -

引用なし
パスワード
   ▼UO3 さん 回答ありがとうございます。

OCRソフトが最終的にテキストボックスで掃き出す仕様だったため、今回のお願いをしました。
回答いただいたコードでうまく行きました。

(病気のためお礼が遅くなりました)

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