• ベストアンサー

カーソルを一番最初に戻したいのですが・・・

カーソルを一番最初に戻したいのですが・・・ エクセルでユーザーフォームを作成しました。 そこに、テキストボックスを10個ほど、コマンドボタンを作成しました。 テキストボックスに入力し、コマンドボタンを押すとワークシートにその内容が入力されるところまでは何とかできました。 その作業を何度かやりたいと思うのですが、カーソルが一番最初のテキストボックスに戻す方法が分からないんです。 何か、良い方法はないでしょうか? どうか、よろしくお願いします。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

そういう場合は、SetFocusメソッドを使います。 '---------------------------------- Private Sub CommandButton1_Click()   --転記処理ーー '転記後 '10個のTextBoxの内容を消して次の入力の準備   Dim i As Integer   For i = 1 To 10     Controls("TextBox" & i).Value = ""   Next i '最初のテキストボックスに戻る   TextBox1.SetFocus End Sub '---------------------------------- 以上です。

atom002
質問者

お礼

回答をありがとうございました。 詳しく内容を記入していただき、よく分かりました。 使い慣れていなかったんですが、お二人に親切に答えていただき大変うれしく思いました。 ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

コマンドボタンを押して何かさせたら,そのまま続きに Textbox1.setfocus とかですかね。

atom002
質問者

お礼

ありがとうございました。 setfocusで問題ありませんでした。

関連するQ&A

  • excelVBAのフォームでカーソルの位置を指定するには?

    excelのVBAでフォームを作ってます。 フォームを開いたときにカーソルはタブオーダーの一番最初に来るのはokなんですが、入力内容をシートに転記したあと、入力内容をクリアし、カーソルをタブオーダーの2番目にもってきたいんです。入力内容の転記とクリアはコマンドボタンで実行させていますが、カーソルを希望するテキストボックスに移動させるのはどうすればいいのでしょうか。

  • Excelユーザーフォームでのデータ検索

    初心者の質問で申し訳ございません。 ユーザーフォームを利用して検索ボタンを作ろうと考えています。 ユーザーフォームでテキストボックスを2個と コマンドボタン1個を作成し、 テキストボックス1に検索したい氏名を入力して コマンドボタンを押すと、 ワークシート(ワークシート名、データ)に作成されたデータのD列から 一致するものを検索し、 一致したデータのA列にある「番号」をテキストボックス2、 表示する。 というマクロが書けず困っています。 よろしくお願いします。

  • VBAワーク シート名前を付けて作成

    エクセルVBAにて 原紙とゆう名前のワークシートをコピー処理して 入力フォームにテキストボックス1と2があり コピーした原紙とゆうワークシート名から テキストボックス1と2に入力した項目が 合わさってワークシート名に変更する方法はあるのでしょうか? 例)テキストボックス1に 123   テキストボックス2に 456 コマンドボタン1をクリックすることによって ワークシート名が123456となるようにしたいのですが? 宜しくお願いいたします。

  • エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされて

    エクセルVBAマクロで、一度テキストポックスに入力した値がコピーされてしまう VBAマクロ初心者です。 エクセルVBAマクロで、以下の様なプログラムを作成し計算させていますが、 一度入力した値がテキストポックスに残ってしまい、なんとかならないかなと 思っています。 (1)複数シートにそれぞれコマンドボタンを配置し、クリックすると同じユーザー フォームが立ち上がるようになっています。 (2)そのユーザーフォーム内に、テキストボックスが複数あり、それぞれ値を入力 して計算スタートさせると、ワークシートの1行目から数千行目まで計算して 各行に計算結果を表示します。 (計算は、既に各行に入力済みのデータとこのテキストボックスの値を元に算出されます) (3)次に、別のシートでコマンドボタンをクリックし、ユーザーフォームを立ち上げると、 前のシートで入力した値がそのまま各テキストボックスに入ってしまいます。 (これは、必ず起こる訳ではなく、時々起こるのですが、起こる場合は、コマンドボタン をクリックしてからユーザーフォームが立ち上がるまでの時間が若干短い感じがします) ※一度、上記の計算をさせるとテキストボックスの値がそのシートの特定のセルに入り、 次回ユーザーフォームを立ち上げた際に、テキストボックスに入るようになっています。 (Private Sub UserForm Initialize を使っています) パソコンの構造を、私はよく知らないのですが、おそらく、一度テキストボックスに値 を入力して計算させると、どこかのメモリにそれが残っていて、次にユーザーフォーム を立ち上げた際にそれが入ってしまうのかな、と思っています。 (ただし、もし前の値が入ってしまったとしても、一度そのユーザーフォームを消して から、再度立ち上げると、正常な値(そのシートの特定のセルを参照)が必ず入ります) 何か、プログラムにより、このメモリ?を消す?、あるいはうまく解決する方法など 考えられませんでしょうか? もし、詳しい方がおられましたら、御教示いただけませんでしょうか。 よろしくお願いいたします。

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

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

  • フォーカスを移動させない方法

    エクセル2003のユーザーフォームにリストボックス1、リストボックス2、テキストボックス1、コマンドボタン1(シート転送用)を作成しました。(タブオーダーはこの順になってます。) 転送用ボタンは最後にクリックしますが、前3個のコントロールの操作の順番はどれでも可能にしたいと思います。ただしテキストボックスは入力の都度クリックしなくてよいようにフォーカスを常駐させたいのです。どなたか簡単な方法を教えてください。

  • フォーカスを移動させない方法

    エクセル2003のユーザーフォームにリストボックス1、リストボックス2、テキストボックス1、コマンドボタン1(シート転送用)を作成しました。(タブオーダーはこの順になってます。) 転送用ボタンは最後にクリックしますが、前3個のコントロールの操作の順番はどれでも可能にしたいと思います。ただしテキストボックスは入力の都度クリックしなくてよいようにフォーカスを常駐させたいのです。どなたか簡単な方法を教えてください。

  • Excelユーザーフォームでのデータ検索

    現在Excelマクロの勉強中ですが、ユーザーフォームでテキストボックスを4個とコマンドボタン1個を作成し、テキストボックス1にコードを入力してコマンドボタンを押すと、ワークシート(ワークシート名、住所録)に作成されたデータのA列からコードを検索(データは2行目から始まる)し、一致したデータのB列にある「名前」をテキストボックス2、C列の「住所」をテキストボックス3、D列の「電話番号」をテキストボックス4に表示する。 というマクロが書けず困っています。 わかる方教えてください。

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

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

  • ユーザーフォームに入力したデータを保持する方法

    VBA初心者です。いろいろ調べて徐々に進められていますが、、 こちらもなかなか見つからなかったので質問させていただきます。 現在、ユーザーフォームにテキストボックスをいくつか配置し、 さまざまな計算などをさせて、最終的にエクセルシートに反映させる。 といったことが出来るようにプログラムをしています。 ユーザーフォームのテキストボックスに一度入力したものを、 エクセルシートを閉じるまで残すことはできるでしょうか? 一度、×ボタンで閉じてしまうと、次に呼び出したときには初期の状態になってしまいます。 ユーザーフォームに入力し、エクセルシートで確認、 その後 再度ユーザーフォーム呼び出して修正する といった作業をするために、一度入力したものが消えないようにしたいです。 よろしくお願いいたします。

専門家に質問してみよう