ExcelのテキストBOXについて教えてください

このQ&Aのポイント
  • Excelの Sheet1 には「TextBox1~6」というテキストボックスがあります。
  • それぞれのテキストボックスに情報を入力し、「CommandButton1」を押すと、 Sheet2 にデータが書き込まれます。
  • Excel2000を使用しています。
回答を見る
  • ベストアンサー

ExcelのテキストBOXについて教えて下さい。

おはようございます。 Excelの Sheet1 に次の様な表があり、 (Sheet1)   A   B      C     D E   F      G 1 (1) 部品名  「TextBox1」  (5) 標準価格 「TextBox5」 2 (2) 型式   「TextBox2」   (6) 標準価格 「TextBox6」 3 (3) 仕様   「TextBox3」 4 (4) メーカー 「TextBox4」 「TextBox1~6」にそれぞれ情報を入力して「CommandButton1」を押すと、 Sheet2 にデータが書込まれる様にしたいのですが可能でしょうか? (Sheet2)    A     B   C   D       E     F  1 部品名 型式 仕様 メーカー 標準価格 仕入価格 2  ↓     ↓   ↓  ↓      ↓    ↓ ど素人なもので上手く説明できませんが、どなたか教えていただけないでしょうか? 宜しくお願いします。 Excel2000を使用しています。

  • POBO
  • お礼率100% (3/3)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 シートモジュールに書きます。 '---------------------------------------- Private Sub CommandButton1_Click()   Dim arData(5) As Variant   Dim i As Long   For i = 1 To 6     arData(i - 1) = Me.OLEObjects("TextBox" & i).Object.Value   Next i   With Worksheets("Sheet2")     i = .Cells(Rows.Count, 1).End(xlUp).Row + 1     If i < Rows.Count Then       .Cells(i, 1).Resize(, 6).Value = arData     End If   End With   Beep End Sub '-------------------------------------------

POBO
質問者

お礼

おはようございます。 Wendy02さんのおっしゃる通りに入力したらできました!! ど素人の自分にはとてもいい勉強になりました。 ありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2の回答者です。ちょっとしたアドバイスです。 #2は、掲示板の回答としては定番ですが、実は、今回の#2のようなコードは、あまりテキストには載っていないのです。 テキストで書かれている基本的な方法は、ひとつずつ、値を取る方法です。 ------------------------------------------- i = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheet2.Cells(i,1).Value =TextBox1.Value Sheet2.Cells(i,2).Value =TextBox2.Value (……)となると思います。 ------------------------------------------- 本当は、書き方のスタイルにこだわったり、ワザを使ったりしなくてもよいのです。ただ、間違いのない書き方をすればよいだけなのです。 覚えるためには、多くの諸先輩たちがいうように、一定の期間に一定の数をこなしていくことしかありません。長い実践的なコードよりも、ごく基礎的なものを数多く自分で入力して、「実行(RUN)」していくことです。500個がひとつのボーダーラインです。一通り書けるレベルようになるまでに、早い人で、3~6ヶ月、普通の人は、2~3年掛かります。中には、一向に上達しない人もいますが、いずれにしても、ほとんどの人は、初級終了にたどり着かずに終わってしまいます。#2のコードは、ちょうど初級を終わったレベルのコードです。 私としては、VBAは、頭で覚えるものではなく、VBEdiotr の反応で覚えるようなものだと思っています。エラーが返ったら、エラーを潰す。なぜエラーが出たか、自分で考えて、エラーがでないようにして行くことが究極的にVBAを覚えることだと思います。ほとんどの人は、そのようにして覚えたと思います。

POBO
質問者

お礼

ありがとうございます!! 少しずつでも覚えて行けるようにがんばります。 ご指導ありがとうございました。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

これ、VBA使わないと出来ないと思いますけどね。VBAを使えば簡単なん ですけど、VBAを勉強する根性ありますか? とりあえず、テキストボックス(リストボックスですよね? テキスト ボックスを使うなら、セルの入力で済みますもん)の内容を、例えば Sheet1のAA1~AF1にリンクさせておくなら、VBAは、こんなコードを コマンドボタンに張り付けると動くと思いますけど。 Sub TEST() Sheets("Sheet1").Select Range("AA1:AF1").Copy Sheets("Sheet2").Select Range("A65536").End(xlUp).Offset(1).Select ActiveSheet.Paste Sheets("Sheet1").Select End Sub

POBO
質問者

お礼

今VBAの勉強していますよ。 といっても理解力のない私にはかなり険しい道のりなのですが…。 FEX2053さんのご回答通りのコードを張付けたらできました!! ありがとうございました。

関連するQ&A

  • エクセルVBAテキストボックスをシートに…

    TextBox1に会社名、TextBox2に商品名、TextBox3に金額、TextBox4と5にも商品名と金額を入力するとして、   A  B  C 1 会社 商品 金額 2 上みたいにシートに表示させたいのですが、TextBox4と5が入力されている場合はB2、C2にも値が入り、新しくテキストボックスに入力をしたときはその下のセルに表示されるようにしたいです。 分かりにくい説明ですが宜しくお願いします。

  • Excel 別のシートを参照し、行のデータを列の向きに直したい

    <Sheet1> A  B  C  D   E   F ~ 1 商品名 価格 数量 割引率 合計 2  イ 3  ロ 4  ハ 5  ニ のようなデータを <Sheet2>に    A   B  C  D  E  ~ 1 商品名  イ  ロ  ハ  ニ 2  価格 3  数量 4 割引率  5  合計  のように、向きを変えて表を作り変えたいのですが、 <Sheet2>のB列に    A   B      1 商品名 =Sheet1!B2   2  価格 =Sheet1!C2 3  数量 =Sheet1!D2 4 割引率 =Sheet1!E2 5  合計 =Sheet1!F2 と入れて、オートフィルさせても、だめですよね。 当然のようにC列はSheet1!B3にならずSheet1!C2 になってしまいます。 どうすれば、良いかご存知の方、教えてください。 宜しくお願いたします。  

  • 入力値をListボックスに表示させたい。

    (仕様1) ユーザーフォーム1でテキストボックス1~5に 入力した値をListボックスに表示させたい。 例えば textbox1=A,textbox2=B,textbox3=C・・・ と入力されたら、 A B C D E のように順に横方向一列に表示させるようにしたいです。 (仕様2) これをコマンドボタン1を押す度にリストボックス1に新しく追加されていく 様にしたいのですが、できますでしょうか。 例えば、 A B C D E A C D B E (テキストボックスに入力後ボタン1を押す) A C B D E (テキストボックスに入力後ボタン1を押す)

  • Excelで検索結果をテキストボックスに表示

    Excelユーザーフォームにテキストボックス4つとコマンドドボタン1つを作成して、TextBox1に検索項目を入力しボタンを押すとA列を検索してB列、C列、D列の検索結果をTextbox2(B列)、textbox3(C列)、textbox4(D列)に表示する。 A列に同じ項目があったら、ボタンを押すと次の検索結果をTextboxに表示するマクロを教えてください。

  • 【エクセル関数】別シートから複数列のデータを一度に挿入する方法

    はじめまして。 エクセル関数について下記ご教示願います。 ●Sheet1のE列を基準にSheet2のデータをSheet1に挿入 ●Sheet2から挿入する列は複数ある ●Sheet2の複数列に対応するSheet1の列も複数ある  ⇒Sheet2の複数列データをSheet1の対応する列に一度に挿入したい [Sheet2]  A     B      C     D       E     F 1番号  品名     規格名 アイテム番号  メーカー  発売日 2 1  バラ     A2354   5673      山田  12/12  3 2  キク    B6899 8239      田中 12/23 4 3  ラン    C1432 3324     中田 12/24 [Sheet1]  A    B    C    D    E   F 1番号 規格名  メーカー  品名  アイテム番号 発売日 2 1               5673 3 2               8239 4 3               3324  ◆Sheet2のデータをSheet1に挿入ということで、 [Sheet2][Sheet1]    C ⇒⇒ B    E ⇒⇒ C    B ⇒⇒ D    F ⇒⇒ F この複数列のデータ挿入を一気に行う方法はあるのでしょうか。 よろしくお願い致します。

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

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

  • テキストデータの並べ方を変える

    すみません、エクセル操作で困っております。 エクセルは全くの初心者です。 たとえばa,b,c,d,e,f,gと並んでいるtxtデータがあるのですが、 これをExcel2007で開くと a,b,c,d,e,f,gという感じで横方向のセルに従って開いてしまうのですが、 これを a b c d e f g という感じで縦に並べ替えて読み込ませる方法はありませんでしょうか?

  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

  • エクセル2016 数式のコピーについて

    エクセル2016を使用しています。 sheet1 において下記のように行ごとに合計しました。  B2~E2 =合計F2 B3~E3=合計F3 B4~E4=合計F4 sheet2において B2=sheet1 合計F2 C2=sheet1 合計F3 D2=sheet1 合計F4 とする必要があります。 sheet1の合計をF2に貼り付け、あとは数式をコピーをしたいのですが どうやってもsheet2 C2=sheet1 合計f3 になりません。 $マークを使ってもできません。 ご教授どうぞよろしくお願いいたします。

  • エクセルと照合について

    エクセルと照合について 工場に勤務していて、シフト表と給与計算をしています。 エクセルの表がうまく貼りつけられず(列がずれるため)、縦書きですいません。 以下はシート1です。 出勤予定表(A1) Aさん(A2) 1/1(B1)←1/1は日付です。 1(B2) 1/2(C1) 空欄(C2)←休日のことです。 1/3(D1) 3(D2) 1/4(E1) 空欄(E2) 1/5(F1) 1(F2) 1/6(G1) 3(G2) 以下BさんからEさんまで5人分あります。 以下は勤務時間コードです。 1 5:00~13:00 2 8:00~15:00 3 13:00~21:00 以下はシート2に作成している、実際の出勤日です。 Aさん(A2) 1/1(B1)←1/1は日付です。 5:00~13:00(B2) 1/2(C1) 空欄(C2)←休日のことです。 1/3(D1) 13:00~21:00(D2) 1/4(E1) 空欄(C2) 1/5(F1) 5:00~13:00(F2) 1/6(G1) 13:00~21:00(G2) 他にBさんからEさんまで、シート3からシート6まで作成しています。 要は二つのシートをマクロか関数かであっているかどうか照合したのですが、できるのでしょうか。 目視はできるだけ避けたいです。 超初心者ですいません。 お願いします。

専門家に質問してみよう