大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ユーザーフォームから連続でシートに値を入力には、「最終行+1行」に入力、ユーザーフォームをクリア、そして1番目のテキストボックスをフォーカスすると、できます。ユーザーの目線に立って、入力しやすいユーザーフォームを作成していきましょう。

はじめに

この記事では、ユーザーフォームから、連続でシートに値を入力する方法について、ご紹介します。

流れとしては、

  • ユーザーフォームからシートの最終行+1行目に入力
  • ユーザーフォームをクリア
  • 1つ目のテキストボックスにフォーカス

という手順で、連続でシートに値を入力できます。

使うユーザー目線で、スムーズな入力ができるようにしていきましょう。

では、ユーザーフォームから、連続でシートに値を入力する方法について、解説していきます。

この記事を読むメリット

  • ユーザーフォームから連続でシートに値を入力できるようにして、入力する作業を効率化できます。

目次から見たい項目へ移動すると便利ですよ。

目次

ユーザーフォームから連続でシートに入力をしたい

ユーザーフォームから連続でシートに入力する、というのをやってみます。

連続でシートに入力したい

やりたい内容としては、ユーザーフォームから連続でシートに入力したい、ということになります。

完成版からみていきます。

ユーザーフォームから連続で入力したい

まずは、ユーザーフォームを開きます。

ユーザーフォームを開きます

ユーザーフォームに入力をします。

ユーザーフォームに入力をします

入力のボタンをクリックします。

入力のボタンをクリックします

シートに値を入力して、ユーザーフォームの値をクリアできます。

シートに値を入力して、ユーザーフォームの値をクリアできました

シートに値を入力して、ユーザーフォームの値をクリアできました。

連続で入力

ユーザーフォームをクリアして、フォーカスも1つ目のテキストボックスにしていますので、そのまま値を入力して、シートに入力できます。

再度、ユーザーフォームに値を入力して、入力ボタンをクリックします

ボタンをクリックしたら、シートに値を入力して、ユーザーフォームの値はクリアできます。

シートに値を入力して、値をクリアできました

シートに値を入力して、値をクリアできました。

さらに連続で入力

同じように、ユーザーフォームの値はクリアされていて、フォーカスも1つ目のテキストボックスに移っていますので、そのまま入力して、ボタンをクリックです。

再度、ユーザーフォームに値を入力して、入力ボタンをクリックします

シートに値を入力して、値をクリアできます。

シートに値を入力して、値をクリアできました

シートに値を入力して、値をクリアできました。

では、ユーザーフォームを作成する手順について、解説していきます。

ユーザーフォームの値をクリア

入力ミスがあった場合に、ユーザーフォームの値をクリアするため、ボタンを追加しておくと便利です。

ユーザーフォームの値をクリア

ユーザーフォームのクリアボタンをクリックしてみます。

ユーザーフォームのクリアボタンをクリックしてみます

ユーザーフォームの値をクリアできます。

ユーザーフォームの値をクリアできました

ユーザーフォームの値をクリアできました。

こんな感じで、ユーザー目線に立って、ボタンを作成できるといいですね。

VBAコードを作成する手順

VBAコードを作成する手順を解説していきます。

  • ユーザーフォームを作成
  • 最終行の1行下に入力するVBAコードの作成
  • テキストボックスのクリアとフォーカスのVBAコードを作成
  • クリアボタンの作成

という流れで作成していきます。

ユーザーフォームを作成

まずは、ユーザーフォームを作成します。

ユーザーフォームを作成

ユーザーフォームを作成します

ラベルとテキストボックス、そしてボタンを配置します。

テキストボックスのオブジェクト名は、「Textbox1」~「Textbox4」となっています。

ボタンクリックで最終行の1行下に入力

ボタンクリックで、最終行の1行下に入力するVBAコードを記載していきます。

「入力」のボタンをダブルクリックして、VBAコードを入力します。

「入力」ボタンをダブルクリック

ボタンをダブルクリックして、VBAコードを入力します

入力するVBAコードは、次のようになります。

入力するVBAコード

4つのテキストボックスの値を、シートに入力します。

Private Sub CommandButton1_Click()
  
  With Cells(Rows.Count, "A").End(xlUp) '最終行を取得
    .Offset(1, 0) = TextBox1.Value '商品
    .Offset(1, 1) = TextBox2.Value '品番
    .Offset(1, 2) = TextBox3.Value '価格
    .Offset(1, 3) = TextBox4.Value '数量
  End With

End Sub

「Controls」を使って、ループして入力することもできます。

Private Sub CommandButton1_Click()

  With Cells(Rows.Count, "A").End(xlUp)
    '「Controls」を使ってループして入力
    For i = 1 To 4
      .Offset(1, i - 1) = Controls("TextBox" & i).Value
    Next
  End With

End Sub

入力する項目が増えてきたら、「Controls」を使って入力すると便利です。

では、ユーザーフォームを開いて、値を入力してみます。

ユーザーフォームから値を入力

ユーザーフォームに値を入力して、入力ボタンをクリックしてみます。

ユーザーフォームに値を入力して、入力ボタンをクリックしてみます

シートに値を入力できます。

シートに値を入力できました

シートに値を入力できました。

テキストボックスの値をクリアしてフォーカスする

入力するだけだと不親切なので、入力後にテキストボックスの値をクリアして、1つ目のテキストボックスにフォーカスしてみます。

テキストボックスの値をクリアして、フォーカスするVBAコードを追加します。

Private Sub CommandButton1_Click()

  With Cells(Rows.Count, "A").End(xlUp)
    For i = 1 To 4
      .Offset(1, i - 1) = Controls("TextBox" & i).Value
    Next
  End With
  
  'テキストボックスをクリア
  For i = 1 To 4
    Controls("TextBox" & i).Value = ""
  Next
  
  '1つ目のテキストボックスをフォーカス
  TextBox1.SetFocus

End Sub

ユーザーフォームに値を入力して、入力ボタンをクリックします。

値を入力して入力ボタンをクリック

ユーザーフォームに値を入力して、入力ボタンをクリックします

シートに値を入力して、ユーザーフォームの値をクリアできます。

シートに値を入力して、フォームをクリア

シートに値を入力して、ユーザーフォームの値をクリアできました

シートに値を入力して、ユーザーフォームの値をクリアできました。

そして、クリアした後に、1つ目のテキストボックスにフォーカスしておくと、次の入力がスムーズです。

1つ目のテキストボックスをフォーカス

クリアした後に、1つ目のテキストボックスにフォーカスしておくと、次の入力がスムーズです

こんな感じで、シートに入力後、テキストボックスをクリア、1つ目のテキストボックスにフォーカスすると、連続で入力することができます。

クリアのボタンも追加すると便利

ユーザーフォームのクリアのボタンを、追加すると便利になります。

クリアのボタンをダブルクリックして、VBAコードを入力します。

「クリア」のボタンをダブルクリック

クリアのボタンをダブルクリックして、VBAコードを入力します

クリアのボタンに入力するVBAコードです。

入力するVBAコード

テキストボックスの値をクリアと、1つ目のテキストボックスにフォーカスするVBAコードです。

Private Sub CommandButton2_Click()
  
  'テキストボックスをクリア
  For i = 1 To 4
    Controls("TextBox" & i).Value = ""
  Next
  
  '1つ目のテキストボックスをフォーカス
  TextBox1.SetFocus
  
End Sub

では、ボタンをクリックして、フォームをクリアしてみます。

ボタンでフォームをクリア

クリアのボタンをクリックします。

クリアのボタンをクリックします

ユーザーフォームの値をクリアできます。

ユーザーフォームの値をクリアできます

1つ目のテキストボックスをフォーカスできています。

1つ目のテキストボックスをフォーカスできています

こんな感じで、最初から入力したい場合に使えます。

おわりに

この記事では、ユーザーフォームから、連続でシートに値を入力する方法について、ご紹介しました。

流れとしては、

  • ユーザーフォームからシートの最終行+1行目に入力
  • ユーザーフォームをクリア
  • 1つ目のテキストボックスにフォーカス

という手順で、連続でシートに値を入力できます。

使うユーザー目線で、スムーズな入力ができるようにしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す