• ベストアンサー

エクセルVBAユーザーフォーム

ユーザーフォームに入力後ワークシートへ転記されるのですが、そのカーソルがワークシート側に行ってしまいます。連続して入力したいのですが、ユーザーフォームにもどるようにするにはどうしたらよいのでしょうか? 教えて下さい。よろしくお願いいたします

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

  • ベストアンサー
回答No.2

こんばんは。 こちらの質問の続きですね。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2056002 > ユーザーフォームに入力後ワークシートへ転記されるのですが、そのカーソルがワークシート側に行ってしまいます。 ユーザーフォームのコントロールの値を転記する際に、ワークシートやセルを選択していませんか? 転記だけの処理ならば、フォーカスはユーザーフォーム上にあります。 ワークシートやセルを選択しなくても転記は出来ますので、もし不要な選択があればその命令をコメントしてみて下さい。 もし上記が不可能な場合は、#1の方のご回答の通りに命令を追記して下さい。

mamadocomo
質問者

補足

GreatDragon 様 毎回ご回答ありがとうございます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2056002の質問の続きです。おっしゃる通り選択しておりました。ですが、#1のご回答を下さりやってみたところできました。 また、その続きなのですが、ユーザーフォーム上で入力数字の桁数を制限するにはどのようにすれば良いのでしょうか?ユーザーフォームを出していると入力規則が使えず難儀しております。 あつかましい質問で申し訳ありません。よろしければご回答下さいますようお願い申し上げます。

その他の回答 (2)

回答No.3

こんばんは。 > ユーザーフォーム上で入力数字の桁数を制限するにはどのようにすれば良いのでしょうか? テキストボックスのプロパティに、MaxLength プロパティがあります。  ・桁数を制限しない場合は 0 (既定値)を設定します。  ・例えば5桁に制限したければ 5 と設定します。 事前にプロパティウインドウで設定しておくか、あるいは Initialize イベントに命令を記述すると良いでしょう。 がんばってくださいネ。

mamadocomo
質問者

お礼

GreatDragon 様 度々の質問にもかかわらず、丁寧に教えて下さいましてありがとうございました。とても勉強になりました。

回答No.1

たとえば ユーザーフォーム1 の テキストボックス1にカーソルを置いておきたいときは UserForm1.TextBox1.SetFocus もしこの時 ユーザフォーム1が隠れて見えなくなっていたら その前に UserForm1.Show を書き込んでください。

mamadocomo
質問者

お礼

ありがとうございました。やりたかったことがばっちりできました。

関連するQ&A

  • エクセルVBA ユーザーフォームのボタン

    ユーザーフォームにCommandButton1があります ワークシートにもCommandButton2があります ユーザーフォーム上のCommandButton1をクリックすることで、ワークシート上のCommandButton2をクリックするという命令は作れるのでしょうか? ワークシート上のCommandButton2をクリックした後の命令は出来ているのですが、そのコードをコピーしてユーザーフォーム上のCommandButton1のコードにコピーするしかないのでしょうか? 実行ボタン(CommandButton2)をワークシートに作成したので、 ユーザーフォームで入力→ ユーザーフォーム上のボタン(CommandButton1)をクリック→ ユーザーフォームは終了→ ワークシート上の実行ボタン(CommandButton2)をクリック してくれると良いかと思いました よろしくお願いします

  • エクセルユーザーフォームの日付操作を教えてください。

    エクセルユーザーフォームの日付操作を教えてください。 テキストボックスにスピンボタンで日付を入力し、ワークシートに転記するとシリアル値ではなくテキストで転記されます。ワークシートの日付処理に反映されませんので良い方法があれば教えてください。(mm/ddの入力でも良いですスピンボタンにこだわりません)

  • EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作り

    EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作りました。そのワークシート上での定数や、プロシージャや関数をワークシートのモジュールに置いています。そして、その定数や関数などをユーザーフォームのイニシャライズなどで使いたいと思いますが、ユーザーフォームのモジュールはワークシートのモジュールとは別なので、使えません。他への影響を考えると、標準モジュールには、置くのは不適切だと思います。 特定のワークシート上でのみ使うユーザーフォームと、そのワークシートとで、共通の定数や関数などを使う方法は、あるのでしょうか。どのようにすればよいのでしょうか。

  • エクセルVBA ユーザーフォーム 検索

    現在VBAにてユーザーフォームにて入力したデータをシート1に転記するものを作成しました。 この転記したデータを生かして作業したいと考えております。 データは商品データで A    B C E F 商品コード 商品名  区分  単価  備考 となっており ユーザーフォームも TEXTBOX1=A TEXTBOX2=B と言う様になってます。 現在考えているのがこのデータの一部を変更したい場合、コマンドボタンを押すと商品コード入力用boxがでてきて、商品コードを入力するとA列から検索し該当する商品データをユーザーフォーム上に表示するようにしたいのです。 そのデータがA75行にあったとします。 そのユーザーフォーム上で単価を変更した場合検索した行(A75行)にそのまま上書きする様にしたいです。 説明がうまくできてないかも知れませんが、どなたかご教授願います。

  • ユーザーフォームのプロパティが表示しなくなる。

    ワークシートのコマンドボタンでユーザーフォームを表示しテキストボックスに入力後、ワークシートに転記するマクロを作成しているのです。 途中で作動テストをすると上手く動きましたが、しばらく放置し又、動かしてみるとえエラー出る。 調べようとしてもユーザーフォームのプロパティがパスコードエラーで全く表示されなくなっている。 その後自動保存される。 再度開きなおして作動させると作動するけど又、同じ現象になる。 プログラミングの問題なのでしょうか。

  • エクセルのユーザーフォームについて

    現在、ワークシートの内容を見やすくするためにユーザーフォームを使用し表示させています。印刷は、ユーザーフォームにコマンドボタンを配置し、ワークシートを印刷しています。 せっかくユーザーフォームで見やすいレイアウトにしているので、表示させた内容をユーザーフォームごと印刷できればと考えています。 画面のハードコピーとかではなくて、コマンドボタンをクリックすることで印刷したいのですが、どなたか教えてください。

  • Excel ユーザーフォームからの転記

    Excel ユーザーフォームからの転記 はじめまして、ご教授願います。 Exceiのユーザーフォーム内のテキストボックスのデータをシートに転記したいのですが、 教えてください。 テキストボックス内の改行を含んだデータを改行で区切って、別々のセル(縦に順に)に転記 したいのですが、方法がわかりません。 VBAでどのように書けばよろしいのでしょうか。 ご教授よろしくお願いします。

  • 【Excel VBA】ユーザーフォームについて

    Excel2003を使用しています。 Sheet1のある範囲のデータをSheet2に(アクティブセルに)コピーするというマクロを作成しました。 データをコピーする際、範囲中のいくつかのセル(2~3箇所ですが)のデータを書き換えて、コピーするときもあるため、変更箇所がある場合は入力モード等の関係もあるので、ユーザーフォームを使って、書き換えるようにしました。 コピー元の範囲を変えただけの同じようなマクロが複数あるのですが、テキストボックスやコンボボックスに入力されたデータをシートへ転記する際のセルの位置が変わるだけなので、ひとつのユーザーフォームを使いまわしというと変ですが、そのようなことはできないのかなと思い、質問させていただきました。 -------------------------------------------------------------- Private Sub CommandButton1_Click()   Range("F371").Value = TextBox1.Text   Range("N371").Value = ComboBox1.Text   Unload Me End Sub 上記コードは、ユーザーフォームのコードの一部ですが、 Range("F371").Value = TextBox.1Text      ↓ Range("F397").Value = TextBox.1Text のように、転記先のセルだけ変わればいいので、そのために、同じユーザーフォームをいくつも作るのも…と思った次第です。使いまわしのようなことはできなければ、コピーして作成しようと思っています。 うまく文章に表すことができなくて申し訳ないのですが、よろしくお願いします。

  • エクセルVBA ユーザーフォームの終了について

    エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)

  • ユーザーフォームからワークシートへの転記について

    ●質問の主旨 エクセルVBAの初心者です。 添付画像のユーザーフォームからデータベースへの転記の コードを記述しましたが、実行しようとすると15行目の「CelData」のところが 選択され、コンパイルエラー(変数の定義がされていません) が返されます。 1.「CelData」のコンパイルエラーはどのように修正すれば   よいでしょうか? 2.またこのコンパイルエラーを修正すれば、ユーザーフォームから   ワークシートへの転記ができるでしょうか? ●質問の補足 1.ユーザーフォームにある「入力No.」と 「入力日」(赤色で囲った部分)をそれぞれ A2セル、B2セル(青色で囲った部分)に転記しようと 考えています。 2.添付画像のワークシートには手入力で「柴田8月分」 というシート名が予めつけられています。 3.ユーザーフォームやワークシートには 他に入力、転記する個所がありますが質問を 簡単にするため省略しています。 4.この質問に関するオブジェクト名は以下の 通りです。 ・「入力No.」=TextBox3 ・「入力日」=txtdate ・「データベース入力」=CommandButton3 エクセルVBAにお詳しい方ご教示願います。 使用機種はWindows Vista Excel2007です。 なお、コードは以下の通りです。 1 Option Explicit 2 'ユーザーフォームの初期化 3 Private Sub UserForm_Initialize() 4 TextBox3.Value = 1 5 txtdate = Date 6 End Sub 7 'ユーザーフォームからデータベースへの転記 8 Private Sub データベース入力_Click() 9 Dim RowPos As Integer 10 Dim ColPos As Integer 11 RowPos = 2 12 ColPos = 1 13 Do 14 RowPos = RowPos + 1 15 CelData = Worksheets("柴田8月分").Cells(RowPos, _ 16 ColPos) 17 Loop While CelData <> "" 18 With Worksheets("柴田8月分") 19 .Cells(RowPos, ColPos) = TextBox3.Value 20 .Cells(RowPos, ColPos + 1) = txtdate.Value 21 End With 22 End Sub

専門家に質問してみよう