目次
ユーザーフォームで空白から順番に入力する
こんにちは。伊川(@naonaoke)です。
今回は、ご視聴者様から質問がきましたので、回答します。
質問の内容
ありがとうございます!
セルの一番下に入力することが出来ました!
お聞きしたいのですが、
例えば登録した行を削除した場合、行が空くのですがそこを優先的に使う事は可能でしょうか?
●
●
空白セル◀︎ここに登録したい
空白セル◀︎上が埋まったらここに登録したい
●
●
もし可能でしたらご教授お願い申し上げます!
セルの一番下に入力することが出来ました!
お聞きしたいのですが、
例えば登録した行を削除した場合、行が空くのですがそこを優先的に使う事は可能でしょうか?
●
●
空白セル◀︎ここに登録したい
空白セル◀︎上が埋まったらここに登録したい
●
●
もし可能でしたらご教授お願い申し上げます!
問題提起
(株)IKAWAの柄久 瀬瑠子(エク セルコ)は上司から下記の依頼を受けました。
Sheet1に空白があったら、その空白から優先的にデータを入力したい。
どのようなコードを記載するのか?
解決策
回答

・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を理解していれば、なんてことはないコードです。
ここがポイント
ここがポイント

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

今回は、空白のセルに順番に記載するコードを紹介しました。Find、OFFSETは、便利です。みなさんのスキルにしてください。
今回のサンプルファイルは、No118です。
毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。
















