• ベストアンサー

エクセル マクロを使ってセルの中身をテキストボックスに移動

いつもお世話になります。 エクセルのシート内の様々なところに(ランダム) 文字があります。 これをテキストボックスに1つずつ「変更」できますでしょうか?セル内の内容は消えて構いません。 1セル内の内容を1つのテキストボックスに移動し 場所は同じ位置に。 これをマクロを組んで行いたいと思います。 難しいお願いですが宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

みなテキストボックスに置換えたら Excel である必要も無いような気が、、、、 重くなるし。 こんな感じでしょうか? 選択した範囲を置換えますが、元のセルは残します。 文字の飾りについては処理してません。 試すなら必ずテスト環境で。 Sub Test() Dim r As Range, sh As Shape For Each r In Selection  If Not IsEmpty(r.Value) Then    Set sh = ActiveSheet.Shapes.AddTextbox _    (msoTextOrientationHorizontal, r.Left, _    r.Top, r.Width, r.Height)    sh.TextFrame.Characters.Text = r.Text    sh.Line.Visible = msoFalse  End If Next r End Sub

tenta2005
質問者

お礼

ありがとうございました。 とてもうまく行きました。 これからも勉強していきたいと思います。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

すでに出ている回答で多分良いのでしょうが >エクセルのシート内の様々なところに(ランダム ランダムな複数の「セル」!に文字列が入っているのですね。 >テキストボックスに1つずつ「変更」できますでしょうか テキストボックスは、シート上に今までなくて、VBAで発生させて、新たに、セルの個数だけつくるということですか。 (すでに出ている回答はこれ) 位置はセルの左上に合わせるとして、サイズはセルの大きさに合わせるのですか。 シート上のすべての文字列についてそれをおこなうのでしょうか。 セル範囲の限定はありますか。たとえば見出しがあったとして、それまでやってしまうのでしょうか。 ・どういう場面で、こういうニーズが起こっているのですか。 参考までに教えてください。 何か漠然と、別方法で解決できそうな予感がする。 ・これを実行するきっかけは、ないのですか。 一斉にシート全体をサーと作業して終わり、でよいのですか。 (すでに出ている回答はこれ) イベントとの関連がないかと思って。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

質問の内容を取り違えているかもしれませんが、 やりたいことは以下のような事でしょうか? Sub Test() Dim rng As Range Dim Shp As Shape With ActiveSheet For Each rng In .UsedRange If Not IsEmpty(rng) Then Set Shp = .Shapes.AddTextbox _ (msoTextOrientationHorizontal, rng.Left, rng.Top, rng.Width, rng.Height) Shp.DrawingObject.Text = rng.Text rng.Clear End If Next End With End Sub

tenta2005
質問者

お礼

ありがとうございました。 とてもうまく行きました。 これからも勉強していきたいと思います。

関連するQ&A

  • エクセル セルの中身をテキストボックスへ移動(シート内全て)

    いつもお世話になります。 エクセルのシート内の様々なところに(ランダム) 文字があります。 これをテキストボックスに1つずつ「変更」できますでしょうか?セル内の内容は消えて構いません。 1セル内の内容を1つのテキストボックスに移動し 場所は同じ位置に。 難しいお願いですが宜しくお願いいたします。

  • セルの内容をテキストボックスに移動したい

    前任者がある資料を作成するためにExcelでセルに文字を書き込んでいたのですが、 資料はExcelである必要もなく、 今後もっと融通性のあるレイアウトが必要となり、 Excel内のテキストボックスに変えていこうと思うのですが 何しろ量が多く、ショートカットやマクロを利用したいと思います。 ひとつのセルを選択した後 (1)内容をすべて選択し、 (2)コピー(切り取り)し(Ctr-C,X)、 (3)新しいテキストボックスを作成し、 (4)貼り付ける(Ctr-V) といった一連の作業を、効率よく行うために(1)や(3)のショートカットを行いたい または、全てか一部をマクロにしたいと思います。 マクロに関しては、一から組む気はなく、マクロの記録でできる範囲で、と考えています。 効率的な方法を教えてください。

  • エクセル テキストボックスの内容を削除するマクロ

    シート上の任意のセルにカーソルがいたとして、マクロを実行するとテキストボックス1の事前の内容を全部消去してそのままそのテキストボックスの最初から入力可能な状態にするマクロを教えてください。

  • エクセル テキストボックスについて

    エクセルでテキストボックスへセルからの反映方法 の質問です。 エクセルのセル内の数字や文字を ・いくつかのシートを作成して ・そのシートのセルに反映させ、連動させる 方法はどのようにするのでしょうか。

  • テキストボックスの名前

    エクセルシートにランダムに貼り付けられたテキストボックスの名前を調べるマクロを教えてください。 環境Windows XP Office 2003 目的 Sheet1にテキストボックスがたくさん貼り付けれられている。 テキストボックスの数と名前を知りたい。

  • EXCELのマクロでテキストを読み込む方法

    EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。

  • テキストボックスへにセル値の入力

    エクセルマクロの初心者で恐縮なのですが、ユーザーフォームのテキストボックスに下記のようなことは可能でしょうか? 例1)ユーザーフォーム上にある「テキストボックス」に「オプションボタン1」を選択するとワークシートのセル値を入力(反映)することは可能でしょうか? 例2)次に、「オプションボタン2」を選択すると、例1でテキストボックスに入力(反映)した値を消去し、かつ、このテキストボックスに数値を直接入力したら、ワークシートの別セルに入力した数値が反映されるようにすることは可能でしょうか? 例1・2)についてどのようなマクロを組めばよいのでしょうか? マクロにお詳しい方、大変申し訳ございませんか、ご指導お願いいたします。

  • テキストボックスの移動(2)

    前回、質問しましたが、回答いただいたプログラムで、別のシートから複数のシートのテキストボックスの移動を移動させたいのですが・・・ たとえば、Sheet1・Sheet2・Sheet3にテキストボックス1が配置してあって、A位置とB位置に動くようにしてあります。 前回のプログラムでは、各シートに位置を指定するボタンが配置してありましたが、このボタンをSheet5に配置して、Sheet1・Sheet2・Sheet3の各テキストボックス1が一斉に動くようにしたいのですがよろしくお願いします。 前回のURL → http://oshiete1.goo.ne.jp/kotaeru.php3?q=85846

  • エクセルでのテキストボックスの表示非表示について

     いつもお世話になっております。  エクセル2010を使用していますが、条件によってテキストボックスを表示か非表示にしたいと考えています。テキストボックスは、1つを想定しています。 【例】 (1)sheet1のセルA1が「該当」のとき  →sheet2にあるテキストボックスを表示 (2)sheet1のセルA1が「非該当」のとき  →sheet2にあるテキストボックスを非表示  以上、モジュールでの対応となると思いますが、やり方が分からず苦慮しています。ご教授をどうぞよろしくお願いいたします。

  • エクセル テキストボックスについて

    エクセルの図形について勉強をしています テキストボックスの文字列をシート上のセルにリンクすることができると説明がありますがどのように操作をしたらよいのでしょうか?

専門家に質問してみよう