• ベストアンサー

【Excel VBA】Sheet1上のテキストボックスの値をクリアしたい

Office2003を使用しています。 Excelで、 Sheet1に作成したテキストボックス『BOX_A』 Sheet1に作成したコマンドボタン『PUSH_A』があります。 PUSH_Aを押下時、BOX_Aの値をクリア(消去)したいのですが、うまく行きません。 (BOX_Aに連結しているセルをクリアしても、テキストボックスには数字が残ります) どのようにコーディングしたらよろしいでしょうか?

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

  • ベストアンサー
  • nidoking
  • ベストアンサー率69% (18/26)
回答No.1

sub PUSH_A_click() sheet1.BOX_A.Value ="" end sub でクリアできます。

motsu2006
質問者

お礼

ご回答いただいた通りでできました! ありがとうございました。

その他の回答 (1)

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

もう少し丁寧に質問を書かないと。 >うまく行きません。 どういうコードを書いたのか、少数行なら質問に掲出するとか。 >Sheet1に作成したテキストボックス フォームを使っているかどうか ワークシートに直接貼り付けているか 一般には、フォームの方かコントロールツールボックスの方か (フォームにはたまたまこの場合はテキストボックスがないが) テキストボックスのLinkedCellプロパティを設定しているか 設定している場合は >BOX_Aに連結しているセルをクリアしても セルをクリアすると、元のテキストボックスの値も消えましたが。 だからリンクさせてないのでしょうね。 基本的にテキストボックスの値に空白を代入すれば仕舞いなんですが、難しいことあるのかな。 標準モジュール(質問の場合は、コマンドボタンのクリックイベント ・プロシに) Sub test01() Worksheets("Sheet1").TextBox1.Value = "" End Sub かまたは Sub test02() Worksheets("Sheet1").TextBox1.Text = "" End Sub 実行で消えました(空白になった)が。

motsu2006
質問者

お礼

おっしゃる通りですね。 しかし、 >だからリンクさせてないのでしょうね。 リンクはさせていました。 ありがとうございました。

関連するQ&A

  • Excel2000VBA テキストボックス内での改行で・・・

    ユーザーフォームにテキストボックスを作り、 テキストボックス内での改行をできるように設定します。 このテキストボックスに入力されたデータをセルに入力すると セルでは改行したところに「・」が入ってしまいます。 例えばテキストボックスに  こんにちは[改行]  いい天気ですね と入力して、これをsheet1のA1に入力します。すると、  こんにちは・  いい天気ですね と入力されてしまいます。 この「・」を表示しないようにする方法はありますか? よろしくお願いします。

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

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

  • セルの値をユーザーフォームのテキストボックスに

    エクセルの質問です。 シート1にボタンを設置してユーザーフォームを呼び出すようにしています。 ユーザーフォームにテキストボックスを用意してて、シート1のセル(A1)に記入された数字を、ボタンを押した時に立ち上がったユーザーフォームのテキストボックスに表示されるようにしたいのですが、どうしたらいいのでしょうか?

  • テキストボックスに入力した文字をシート名にする方法

    テキストボックスを二段作成し、 一段目には そこに入力した文字をシート名として新規作成しシートの一番右端に配置し、 二段目には一段目に作成したシート内のD2のセル内に文字を入力できるようにしたいです。 また、シート名(A-103 A-3 A-1 A-2)が複数になった際には アルファベットプラス数字順(A-1 A-2 A-3 A-103)に並べ替えもできたら嬉しいです

  • エクセルVBAでテキストボックスの値の取得と変更について

    エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。 環境:WindowsXPでオフィス2002 状況: エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C) エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい 試した事: コントロールを配置したシートに次のマクロ TEXTBOX_C.Text = "これはコントロールのテキストボックス" を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。 また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

  • EXCEL2003 VBAのテキストボックス

    ユーザーフォームからの入力・操作のみでシート上の住所録を編集出来るものを作ろうとしております。 テキストボックスの値の操作についての質問なのですが、端的に説明しにくいので自分で記述したコードと共に説明させていただきます。 シートはA列に氏名、B列に住所が入るようにし、100件のデータを格納出来るようにします。1行目はタイトルです。 セル範囲の名前は以下のように定義付けしています。  A2:A101 「氏名」  A2:B101 「住所録」 ユーザーフォームには以下のオブジェクトを配置しております。  「名前」入力・出力用テキストボックス(オブジェクト名:TB1)  「住所」入力・出力用テキストボックス(オブジェクト名:TB2)  名前検索用コンボボックス(オブジェクト名:CMB)  「追加」コマンドボタン(オブジェクト名:CB1)  「訂正」コマンドボタン(オブジェクト名:CB2) まずは新規データの入力。テキストボックス(TB1, TB2)に入力した後の「追加」コマンドボタン(CB1)クリック時の処理は以下のコードでうまくいっております。 Private Sub CB1_Click() Range("A65536").End(xlUp).Select Selection.Offset(1, 0).Select Selection = TB1 Selection.Offset(0, 1).Select Selection = TB2 Range("住所録").Sort _ Key1:=Range("A2"), _ Order1:=xlAscending, _ Header:=xlNo, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin End Sub 同じテキストボックス(TB1, TB2)を使いデータの訂正をする為、コンボボックス(CMB)に以下のコードを記載しました。 尚、コンボボックスのRowSourceは「氏名」です。 Private Sub CMB_Change() Dim AA As String AA = CMB.Value TB1.Value = Application.WorksheetFunction.VLookup(AA, Range("住所録"), 1) TB2.Value = Application.WorksheetFunction.VLookup(AA, Range("住所録"), 2) End Sub これでコンボボックスで選択した名前からテキストボックスに名前と住所を表示することができました。 ここからが上手くいきません テキストボックスに表示された文字を同じテキストボックス上で変更し、変更後の情報を「訂正」コマンドボタン(CB2)クリックでシート上に送るために以下のコードを記述しました。 Private Sub CB2_Click() Dim BB As String BB = CMB.Value Dim CC As Range Set CC = Range("氏名").Find(what:=BB, LookIn:=xlValues, _ LookAt:=xlWhole, SearchOrder:=xlByRows) Cells(CC.Row, CC.Column).Select Selection = TB1 Selection.Offset(0, 1).Select Selection = TB2 Range("住所録").Sort _ Key1:=Range("A2"), _ Order1:=xlAscending, _ Header:=xlNo, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin CBM.ListIndex = -1 End Sub これを実行してもシートには訂正後の情報が反映されず訂正前の情報が入ってしまいます。 ここで訂正後の情報を反映させるためにはどうしたらよろしいのでしょうか。

  • テキストボックスの色分け

    シート1のA1のセルに数字、B1に数字が記載されています。 その数字にてシート2のテクストボックスの色分けをしたいのですが。 A1のセルが-5より小さい場合は赤 A1のセルが-5より大きく、B1のセルが-3より大きい場合は緑 A1のセルが-5より大きく、B1のセルが-3から-5の場合は青 A1のセルが-5より大きく、B1のセルが-5より小さい場合は赤 A1が-5より小さい場合はすべて赤 A1の値が-5より大きい場合にB1のセルの値で色分けをしたいのです。 ちなみに-3は-5より大きいと思って説明しています。 説明が下手ですいませんが、よろしくお願いいたします。 エクセルは2003です。

  • テキストボックスへの入力

    アクセス97にてソフト開発をしております フォームAの「合計」テキストボックスに表示されている数字を、フォームAを閉じたときにフォームBの「金額」テキストボックスに入力できるようにしたいのですが、 どの様にすればいいのでしょうか この二つのテキストボックスはODBCリンクテーブルと連結しています

  • [エクセルVBA]セルの値をテキストボックスに表示

    よろしくお願いします。 ユーザーフォームを使って作業しています。 その中で、コンボボックス1で指定した名前を検索値として、VLOOKUPを使ってあるシート(例:シート名「時間検索」)からセルの値をテキストボックスに表示させるようにしたいのです。 コードを作成し表示させることはできたのですが、セルに入っている値の書式が「[h]:mm」の時間形式(例:19:00)のためか、セルの値を引っ張ると小数点(例:0.79166....)で表示されます。 色々と調べてみた中で、format関数を使ったりしてみたんですが不首尾に終わっています。 なんとかテキストボックスに、セルと同じ形式で表示したいのですが、どのように考えればよろしいでしょうか? ご教示お願いいたします。 質問の仕方が悪かった場合は補足・訂正させていただきますので、どうぞよろしくお願いします。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

専門家に質問してみよう