テキストボックスの中の値をセルに1つずつコピペしていく以外に何か良い方法はないでしょうか?
よろしくお願い致します。
シェープがテキストボックスかどうか調べて、中身を順次セルへ入れていくマクロで簡単に取出しができます。
同じシート内の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です。
アクティブなシート上のテキストボックスの値をセルに転記する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
コメント(3件)
どちらのテキストボックスかは、後でわかりそうですね。
festerさんのほうが合っていそうな気がします。
インポートしたHTMLのテーブルからバナーURLを抜いてリストにしたい時とかに重宝しますw