• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストボックスにセルの値を複写する方法)

Excel VB (Excel 2007) の質問:テキストボックスにセルの値を複写する方法

このQ&Aのポイント
  • Sheet1のセルD1、D2、D3に文字が入力されています。そして同じシート上の任意の場所にテキストボックスが配置されています。セルD1の値を"テキスト ボックス 1"に複写、セルD2の値を"テキスト ボックス 2"に、セルD3の値を"テキスト ボックス 3"に複写する方法を教えてください。
  • インターネットのQ&Aで調べましたが、同じような質問でも難しすぎて理解できません。VB初心者として、簡単な方法があれば教えてください。
  • VB初心者でお手数をおかけしますが、よろしくお願いします。

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

テキストボックスにセルの値を入れるのだけならマクロは必要はありません。   【操作手順】  ・テキストボックスス「テキスト ボックス 1」を選択する。  ・数式バーで「=D1」を入力して【Enter】キーを押す。   以上を"テキスト ボックス 2"、"テキスト ボックス 3"を同様に行う。 ネットでも色々説明しています。以下は手順を絵的に説明しています。 http://www.bayclotho.jp/blog/archives/907

Rivinus
質問者

お礼

早速の回答有難うございました。 こんなに簡単にできるとは驚きました。

その他の回答 (2)

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

>テキスト ボックス 1"に複写 ここに、質問者が、エクセルのことがよく判ってない点が在るようだ。 テキストボックス=テキストの値だけを保持できる。リッチテキストのテキストボックスなんていうのもあるが、別として。 一方 エクセルのセル=セルの値、表示形式、文字色などの書式、コメント、関数式、など重畳的な仕組みになっている。このことが理解できてないのでは。 そして複写というのは後者を総体的に移すことをねっらって言う言葉。 だから本件では代入というべきなんだ。 ーーー 一部の図形で数式バー部に=A1などと入れて図形のテキストに出来るものもあるが、その話ではなかろう。 普通には、エクセルVBAでは Sub test01() Worksheets("Sheet1").TextBox1 = Range("A1") End Sub を実行する。 エクセルVBAでは2つあって、上記はシートにテキストボックスを貼り付けた場合である。 Worksheets("Sheet1").を忘れるな。 もうひとつはユーザーフォーム上にテキストボックスを貼り付ける場合で Private Sub UserForm_Click() UserForm1.TextBox1 = Range("A1") End Sub このイベントは不自然ともいえるが。 この2つの区別の質問者には出来てないのでは。 ーーー それとテキストボックスの値をテキストボックスの入力分から拾うキッカケは、コマンドボタンのクリックなどでとらざるを得ない 入力キーストローク中もテキストに出していく考えもあろうが。 Private Sub CommandButton1_Click() UserForm1.TextBox1 = Range("A1") End Sub シート上にコマンドボタンがあるなら、Sheet1のシートモジュールに Private Sub CommandButton1_Click() Worksheets("Sheet1").TextBox1 = Range("A1") End Sub こう言うことも質問には書いてない。情況の説明(特にイベントとの絡み)が全的になされていない。 ーー まだまだエクセルとVBAを経験する必要がありそう。 ーー どちらかというと、シートのセルの値をテキストボックスに持っていく場合は、頻用されないと思うが、どういった使い方なのかな。 逆のためのコントロールで使われるのが多いと思うので。またテキストボックスはシートのセルで代用することも出来なくは無いから。

Rivinus
質問者

お礼

丁寧な回答ありがとうございました。 勉強不足であることが良くわかりました。 もっとVBの勉強をします。

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.1

コピー&ペーストではなく、「値の代入」と考えればよいのではないでしょうか。 Me.[テキスト ボックス 1] = Me.Range("D1").Value Me.[テキスト ボックス 2] = Me.Range("D2").Value Me.[テキスト ボックス 3] = Me.Range("D3").Value

Rivinus
質問者

お礼

こんなに早く回答をいただきありがとうございました。 丁寧な回答で問題は解決しました。

関連するQ&A