pickup

 

目次

ユーザーフォームで空白から順番に入力する

こんにちは。伊川(@naonaoke)です。

今回は、ご視聴者様から質問がきましたので、回答します。

質問の内容
ありがとうございます!
セルの一番下に入力することが出来ました!
お聞きしたいのですが、
例えば登録した行を削除した場合、行が空くのですがそこを優先的に使う事は可能でしょうか?


空白セル◀︎ここに登録したい
空白セル◀︎上が埋まったらここに登録したい


もし可能でしたらご教授お願い申し上げます!

問題提起

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は上司から下記の依頼を受けました。

Sheet1に空白があったら、その空白から優先的にデータを入力したい。

どのようなコードを記載するのか?

解決策

回答
sesuo2.jpg
・Findメゾットを利用して空白のセルを見つける
・空白を見つけたら、OFFSETを利用する。

ユーザーフォームに機能を追加する


最近、視聴数が伸びている動画です。

ありがとうございます。

ユーザーフォームに機能追加 作成手順その1 追加するボタン


この質問というボタンに、質問内容のコードを記載します。

ユーザーフォームに機能追加 作成手順その2 追加するコードを音読する

もし、Sheet1に空白があったら、空白のセルから優先的に入力する。×

しかし、IF構文で条件判定をすると、少し面倒な気がします。

空白のセルを見つけたら、その空白のセルから優先的に入力する。 

この方がスマートな気がします。


ユーザーフォームに機能追加 作成手順その3 コード仕込む

標準モジュールに記載するコード

Sub 質問()
    Dim myRange As Range
    Dim myObj As Range
    Dim keyWord As String
    Dim s As Worksheet


    Worksheets("Sheet1").Select
    Set myRange = Worksheets("Sheet1").Range("A:A")
    keyWord = ""
    Set myObj = myRange.Find(keyWord, LookAt:=xlWhole)
   myObj.Select
 
End Sub

前回のコードと比較する

Private Sub CommandButton4_Click()

Call 質問

With ActiveCell

        .Offset(0, 0) = TextBox1
        .Offset(0, 1) = ComboBox1
        .Offset(0, 2) = TextBox2
        .Offset(0, 3) = TextBox3
        .Offset(0, 4) = TextBox4
        .Offset(0, 5) = TextBox5
        .Offset(0, 6) = TextBox6
        .Offset(0, 7) = ComboBox2
        .Offset(0, 8) = TextBox7
        .Offset(0, 9) = TextBox8

End With
End Sub

OFFSETを理解していれば、なんてことはないコードです。

ここがポイント

ここがポイント
Function8.png
コードに関しては、Findにたどりつけば、意外とカンタンではないでしょうか?しかし、空白があるデータベースは、あまり、お勧めしません。データベースを作成するなら、できるだけ空白を少なくしましょう。

 

まとめ

今回のまとめ
sesuko3.jpg
今回は、空白のセルに順番に記載するコードを紹介しました。Find、OFFSETは、便利です。みなさんのスキルにしてください。

今回のサンプルファイルは、No118です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事