• ベストアンサー

excelのsheetを表示しないでUserFormで更新

今日 2個目の教えてです。 一つ目もまだわからない状態なんですが お分かりの方お教え下さい。 excelを起動するとUserFormのみが起動して(excelシートは開かない)textbox1にコードを入力すると excelシートからtextbox2にデータをひっぱってきます。 そのtextbox2のところを別のデータを入力してコマンドボタンを押すと シートの値が置き換わるようにしたいのですがお教え願えないでしょうか。

  • saiz
  • お礼率62% (66/106)

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 >excelを起動するとUserFormのみが起動して(excelシートは開かない)textbox1にコードを入力すると >excelシートからtextbox2にデータをひっぱってきます。 ここをどのように作っているのかにもよります。 単純に言うとTextBox2にセルB1の値を引っ張ってきたら、 TextBox2.Text = Range("B1").Value ですが、TextBox2の値をセルB1に入れるなら Range("B1").Value = TextBox2.Text となります。 あとはTextBox1に入れたコードを基に、セルB1を探し出す。 これは前半のコードとほぼ同じはずなんですけど、ただそのコードがどのようなものなのかがわかりません。

saiz
質問者

お礼

n-junさん有難うございました。 出来ました。出来ると楽しいですね。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>textbox1にコードを入力するとexcelシートからtextbox2にデータをひっぱってきます。 TextBox1の値を基にSheetのセル番地を取得しTextBox2の値を得ているなら、 そのセル番地を基に書き換えるか、もう一度TextBox1の値でセル番地を取得して書き換えるとか? 引っ張ってこれているなら、そこへ値を代入するように変更するだけかと。。。? 違うかな。

saiz
質問者

補足

n-junさん回答有難うございます。 そのVBAの書き方がわからないのですが。

関連するQ&A

  • Excell(2003) VBA UserForm上のSheetの参照方法は

    Excell2003にてuserForm1にコントロールとしてスプレッドシートを載せています。 このuserForm1には、別にテキストボックス(textbox1)とコマンドボタンが二つ(commandButton1とCommandButton2)があります。 commandButton1がクリックされたとき、textbox1に入力された値をチェックしたのち、Me(userForm)上のSheet1の適当なセル(たとえばA2)にその値を入力したい。  また、CommandButton2がクリックされたときは、Sheet2のA2に入力したい。その場合Sheet2を表示する動作も必要です。  この場合 Q:本体のSheetではなく、フォーム上のSheetを指定する方法 Q:複数のSheetからなるフォーム上のspledSheetのいずれかを表示する方法  はどのようにしたら良いのでしょう。

  • エクセル vba userform について

    現在USERFORMを使用してますが、つまずいています。 たとえば、TEXTBOX1がブランクならばコマンドボタンにフォーカス?をもっていきたいのです。 IF TEXTBOX1="" THEN コマンドボタン1.SETFOCUS ELSE TEXTBOX2.SETFOCUS END IF のような形にしてますが、うまくいきません コマンドボタンを押すとシートにそれぞれ反映されるように作成はできております。 余計なタブ操作をしたくありません。 よろしくお願いします

  • エクセルVBAのマクロ文について

    エクセルVBAで、シート上のボタン(フォーム)をクリックすると、UserForm1が表示されてその中のTextBoxに別のシートのセルに入力したいる値を表示させたくて、以下のようにボタン(フォーム)にマクロを入力したのですが、エラーがでてきてうまくいきません。 入力したマクロが間違っているのでしょうか? Sub ボタン1_Click() UserForm1.Show UserForm1.TextBox1 = Sheets("入力").Ranges("D11").Value End Sub すみませんが、ご存知の方、教えてくださいませんか?

  • UserFormを利用してシートからシートへコピー

    お世話になっています。 UserFormに日付を入力したら、シート1に入力してあるデータをシート2にコピーをさせたいのですが出来ますでしょうか? シート1には、下記のようなデータがあります。 UserFormを作成し、その中には【TextBox】・【CommandButton】があり【TextBox】に日付を入力し【CommandButton】をクリックすると、シート2にそのデータがコピーされるようにしたいのですが・・・ (ちなみに、日付はバラバラに入っています) シート1   A   B      C     D    E ・ ・ ・ 7 No.   日付    商品名    金額   仕入先 8 1  2008/03/10   ○○○ 9 2  2008/03/10   ○○○ 10 3  2008/03/14   ○○○ 11 4  2008/03/13   ○○○ 12 5  2008/03/12   ○○○ 13 6  2008/03/11   ○○○ 14 7  2008/03/12   ○○○ 15 8  2008/03/13   ○○○ ・ ・   ・ ・ ・   ・ ・ ・   ・ 2008/03/12を入力した場合、 シート2   A   B      C     D    E ・ ・ ・ 7   日付    商品名    金額   仕入先 8  2008/03/12   ○○○ 9  2008/03/12   ○○○ 10 11 12 13 14 15 ・ ・   ・ ・ ・   ・ ・ ・   ・

  • エクセルVAB UserForm間の移動ぢょ里

    エクセルのVBAにて UserForm1内のテキストボック1の値をコマンドボタン1 クリック時に同時に開いているUserForm2のテキストボックス2に 入力するようにしたいのですがどの様に書き込めば宜しいでしょうか?

  • Excel VBA テキストボックスから範囲選択を行うには?

    UserForm上にTextBox1、TextBox2、TextBox3、TextBox4、検索ボタンがあり、シートのC列にデータが入力されています。 下記のことを行いたいと考えています。 (1)TextBox1に検索する文字列入力 (2)TextBox2に台数(例えば100)を入れて検索ボタンを押す (3)検索ボタンを押すと、TextBox3にTextBox1の値が入り、TextBox4にTextBox1の値から入力した台数の行にある値を検索して表示させたいのです。 と同時に、TextBox3、TextBox4からシートの範囲選択を行うことは可能でしょうか? 以前も質問させていただきましたが、動作するに至らずでしたので再質問させていただきました。 よろしくお願いしますm(__)m

  • ExcelデータをUserFormへ

    教えて下さい! 今、UserFormに【TextBox1】・【TextBox2】・【TextBox3】・【CommandBottum1】があります。 【TextBox3】にExcelの「No.」を入力して【CommandBottum1】(検索)をクリックしたら【TextBox1】に「商品名」・【TextBox2】に「金額」を表示させたいのですが、どのように行えばよいでしょうか? ちなみに、データは1~7行目までブランク、8行目はタイトル、9行目から始まります。     A    B    C 1 ・ ・ 8   No.   商品名   金額 9   1   ○○○○   80 10   2   △△△△   100 11   3   ××××   150 12   4   ■■■■   200  13   ・    ・        ・ 14   ・    ・        ・  ・    ・    ・       ・ ・    ・    ・       ・

  • EXCEL VBA UserFormで困っています。

    EXCEL VBA UserFormで困っています。 VBAプログラミングで以下のような現象が起こります。 開発環境  WinXP , EXCEL2003 ブックを起動するとメニューが表示され、そこからボタンを押すとuserform1が表示されるというプログラムなんですが、そのボタンを押してuserform1を起動しようとすると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。 UserForm1.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 過去に似た質問を見つけ、そのアドバイスを元に以下を試してみました。 http://okwave.jp/qa/q2001805.html ・エラーの発生行の特定 userform1.showの前に、userform1.label.visible=falseのように、表示、非表示を切り替える命令を出しており、どうやらその表示命令の行でつまづいている事がわかりました。 表示命令を全て消去し実行したところ、現在までは問題なく起動できています。 ・on timeメソッドで時間差をつける ラベルやボタンの表示、非表示命令行をまとめて、 Application.OnTime Now + TimeValue("00:00:01"), "ラベルボタン表示設定" userform1.show といった形で時間差をつけてみました。 結果として、userform1自体は立ち上がるようになったのですが、時間差で実行される"ラベルボタン表示設定"の実行時に「オートメーションエラーです。起動されたオブジェクトはクライアントから切断されました。」と出てくるようになってしまいました。 ラベルはまだ良いのですが、コマンドボタンの表示、非表示は、誤操作を防ぐ手段として非常に重要です。なんとかエラーを出さずにコード通りに起動する方法はありませんでしょうか。

  • Excel VBA 別ブックを開かずに転記

    Excel2007のユーザーフォームについて教えてください。 ユーザーフォームを以下のように作成しました。 ■テキストボックス6つ テキストボックス2→件名 テキストボックス3→数 テキストボックス4→名前 テキストボックス5→備考1 テキストボックス6→備考2 ■コマンドボタンが1と3の2つです。 コマンドボタン1→転記と印刷 コマンドボタン3→終了 ■シートの構成  sheet"作成と一覧"   1行目を以下の項目で使用しています。  A1→番号(テキストボックス1を表示)  B1→件名(テキストボックス2を表示)  C1→数(テキストボックス3を表示)  sheet"印刷"  A1→番号(テキストボックス1を表示)  A2→件名(テキストボックス2を表示)  B2→数(テキストボックス3を表示)  A3→名前(テキストボックス4を表示)  A4→備考1(テキストボックス5を表示)  A5→備考2(テキストボックス6を表示) テキストボックスに入力した値を2つのシートにそれぞれ転記して、 シート"印刷"を2部印刷しています。 ここまで以下のコードで行いました。 Private Sub CommandButton1_Click() '入力値を作成と一覧シートに転記 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) = UserForm1.TextBox2.Value Cells(行, 列 + 2) = UserForm1.TextBox3.Value '入力値を印刷シートにに転記 Worksheets("印刷").Range("A1") = UserForm1.TextBox1.Value Worksheets("印刷").Range("A2") = UserForm1.TextBox2.Value Worksheets("印刷").Range("B2") = UserForm1.TextBox3.Value Worksheets("印刷").Range("A3") = UserForm1.TextBox4.Value Worksheets("印刷").Range("A4") = UserForm1.TextBox5.Value Worksheets("印刷").Range("A5") = UserForm1.TextBox6.Value 部数 = 2 Worksheets("印刷").PrintOut Copies:=部数, Collate:=True UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select End Sub Private Sub CommandButton3_Click() '終了ボタンで値をクリアしてウィンドウを閉じる Dim Ctrl As Control For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then _ Ctrl.Value = "" Next Ctrl Unload Me End Sub 教えて頂きたい事なのですが・・・ コマンドボタン1の入力値を作成と一覧シートに転記の所なのですが、 アクティブセルではなく、常にA列の最後の値の次の空白行に転記するようにしたい場合、 どのように書き換えればいいのでしょうか? もう一点ですが、 別ブックにテキストボックス1から6が入力された一覧があります。 この別ブックを開かずに、 テキストボックス1に入力された番号を探して、 テキストボックス2から6に表示されるようにしたいのです。 うまく説明できないのですが・・・ 別ブックの名前は"たちつ" 別ブックは、あいうサーバーの かきくフォルダの中のさしすフォルダです。 ブック"たちつ"に"一覧"というシートがあります。 一覧のシートのD列の3行目以降には番号が入力されており、日々増えています。 テキストボックス1に入力された番号を、 一覧のD列から探し、 I列の値をテキストボックス2へ K列の値をテキストボックス3へ L列の値をテキストボックス4へ M列の値をテキストボックス5へ J列の値をテキストボックス6へ転記させたいのです。 同じブックの別シートを参照するときには Application.VLookupで出来たのですが、 マクロの記録でやってみても、解決できませんでした。 コードをご覧いただいてお分かりの通り、 VBA超初心者です。 ネットを見ながら試行錯誤している状況です。 コードの間違い等あるかもしれませんが、 ご教示よろしくお願いいたします。

  • シート2の値をシート1に反映

    コマンドの入力ボタンでExcel sheet2の値(マーク)をsheet1へ反映したいのですがその際、事前に手入力している▼、●を消さずに氏名、日付がマッチしたところにマークを入力されるコードがありましたらご教授のほどよろしくお願いします。

専門家に質問してみよう