人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

EXCEL2003を使用しています。シートに大量にテキストボックスが張られており、テキストボックスには数字が入力してあるため何とか取り出したいと考えています(可能であればセルに1つずつ入れ込んでいきたい)。
テキストボックスの中の値をセルに1つずつコピペしていく以外に何か良い方法はないでしょうか?
よろしくお願い致します。

●質問者: nil55
●カテゴリ:コンピュータ インターネット
✍キーワード:コピペ セル テキスト ボックス 入力
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● airplant
●35ポイント

シェープがテキストボックスかどうか調べて、中身を順次セルへ入れていくマクロで簡単に取出しができます。


同じシート内のA2から入れるようにしてありますので、別シートにしたかったり、別な場所にするときは、適宜マクロを変更してください。

なお、オートシェープ内のテキストに改行が入っていても問題なく動作します。

Option Explicit

Sub GetTextBoxStr()

 Const iOutCol As String = "A"
 Dim oTextBox As Shape
 Dim iOutRow As Integer
 
 iOutRow = 2
 For Each oTextBox In ActiveSheet.Shapes
 If oTextBox.Type = msoTextBox Then
 oTextBox.Select
 Cells(iOutRow, iOutCol).Value = Selection.Characters.Text
 iOutRow = iOutRow + 1
 End If
 Next

End Sub

P.S. もしマクロ使ったことなければ、ツール→マクロ→新しいマクロの記録で適当なものを記録し、その後で、このテキストをコピー&ペーストすれば、OKです。


2 ● fester
●35ポイント

アクティブなシート上のテキストボックスの値をセルに転記するVBAサンプル

標準モジュールに以下を記述して実行


Option Explicit

Public Sub Hoge()

 Dim shp As Shape
 
 ActiveSheet.Cells(1, 1).Activate
 
 For Each shp In ActiveSheet.Shapes
 If shp.Type = msoOLEControlObject Then
 If shp.OLEFormat.progID = "Forms.TextBox.1" Then
 ActiveCell.Value = shp.OLEFormat.Object.Object.Text
 ActiveCell.Offset(1, 0).Activate
 End If
 End If
 Next shp

End Sub

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ