目次
ユーザーフォームで空白から順番に入力する
こんにちは。伊川(@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なんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。