| すぐマク YNxv9g0260 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| テキストボックスでワークシートの特定の行まで入力したら2行飛ばすには? |
|
|
|||
「2P目は…コマンドボタンクリックで作る…」ということがはっきり分かりませんので、ワークシートの 1〜22行目を 1ページ目、23〜38行目を 2ページ目ということで進めます。![]() あなたが作られているユーザーフォームを質問の文章から復元すると、右図のように簡単なものかなと思います。 テキストボックスはデータ入力用、コマンドボタンはページの切り替え用、左下のラベルは必ずしも必要な訳ではありませんが案内用です。 質問のポイントは 「入力途中で 2行飛ばして再開する」、つまり、20行目まで入力し終ったら次を 23行目にするということのようですから、それについて回答します。 1. [TAB]または[Enter]キーが押されたときの処理 テキストボックスでの入力は、通常、値のキーを押下した後に[TAB]または[Enter]キーを押します。そうすると、そのときに Exitイベントが発生するので、イベントマクロが作成されていると Excelは、それを実行してくれます。 質問のケースでは、Exitイベントが発生するたびに行数をカウントアップしておいて、20行に達したときだけ 2 余分にアップすれば良いので、例えば次のようになります。 '----------------------------------------------------------------------------------------- Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 11 If 行数 = 20 Then 'もし変数「行数」の値が 20なら 12 行数 = 行数 + 2 '「行数」に 2加える 13 End If 14 行数 = 行数 + 1 '「行数」に 1加える End Sub '-----------------------------------------------------------------------------------------11行の If 文で判定している変数「行数」は、ゼロからカウントし始めていることに気付かれていますね。質問文では「5行目から……20行目まで」ということなので、20から 5を引いて If 行数 = 15 Then とした方が良いのかもしれませんが . . . 2. ユーザーフォームの Initialezeイベントマクロ ブックが開かれてユーザーフォームが表示される直前に Initialezeイベントが発生します。これを利用して 変数「行数」に 5 をセットすることが可能です。 '----------------------------------------------------------------------------------------- Private Sub UserForm_Initialize() 21 行数 = 5 '変数「行数」に 5をセットする End Sub '-----------------------------------------------------------------------------------------こうしておけば、5行目から開始することが可能になります。 3. テキストボックスの値をワークシートのセルにセットするマクロ 次のマクロについては、質問されている訳ではありませんが、変数「行数」をどう使うかのサンプルです。このマクロは、テキストボックスの Changeイベントを利用しています。このイベントはテキストボックスの値が変ったときに発生します。 '----------------------------------------------------------------------------------------- Private Sub TextBox1_Change() 30 Range(Cells(行数, 2), Cells(行数, 2)).Value = TextBox1.Value '値をセルにセットする End Sub '-----------------------------------------------------------------------------------------以上で質問に対する回答としては、終りになります。 サンプルブックのダウンロードは ここをクリック (YNxv9g0260_TextBox.xls 51KB) ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。 |
| http://www.happy500z.com/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |