訪問して頂きありがとうございます。まさふくろーです。
この記事では使用例を使って、セルの値が日付として認識できるかチェックする方法をご紹介します。
目次
使用例
「生年月日」が正しく入力されているかチェック
使用する関数
IsDate関数
IsDate(Expression)
解説 | 引数で指定したデータが日付として認識できるかどうかをチェックする。認識できれば「True」、できなければ「False」が返される。 |
引数 | Expression: 日付がどうかを調べる対象のデータを指定する。 |
使用するプロパティ
Endプロパティ
Rangeオブジェクト.End(Direction)
解説 | Rangeオブジェクトで指定したセルを基準として、引数Directionで指定した方向の終端のセルを取得する。 | ||||||||||
Rangeオブジェクトで指定したセルを基準として、引数Directionで指定した方向の次のセルにデータが入力されている場合は、連続してデータが入力されているセル範囲の終端のセルを取得する。 | |||||||||||
次のセルにデータが入力されていない場合は、その先にあるセルを調べて、データが入力されている最初のセルを取得する。 | |||||||||||
指定した方向にデータが何も入力されていない場合は、ワークシートの最終セルを取得する。 | |||||||||||
引数 | Direction: 終端の方向を指定する。
|
使用するステートメント
For~Nextステートメント
For カウンタ変数 = 初期値 To 最終値 (Step 増分値)
繰り返しの処理
Next (カウンタ変数)
解説 | 「カウンタ変数」が「初期値」で指定した値から「最終値」で指定した値になるまで、指定の「繰り返しの処理」を実行する。繰り返しの処理を実行した後で、カウンタ変数に「増分値」で指定した数が自動的に加算される。 |
「Step 増分値」の記述を省略すると、、増分値は「1」になる。 | |
「Next」の行の「カウンタ変数」は、記述を省略できる。 |
ボタンの作成
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。
シート上にカーソルを移動し、ポインターを「+」の状態にします。
左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。
「マクロの登録」画面が表示されます。
①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。
ボタンの名前を変更する
エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。
右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。
ボタンの名前を変更します。
サンプルプログラム
VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub 実行ボタン_Click() Dim LastRow As Long Dim NowRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For NowRow = 3 To LastRow If IsDate(Cells(NowRow, 2).Value) = True Then Cells(NowRow, 3).Value = "OK" Else Cells(NowRow, 3).Value = "NG" End If Next End Sub |
3 | 「データ最終行」取得用変数「LastRow」を宣言 |
4 | For~Nextステートメントのカウンタ変数「NowRow」を宣言 |
6 | データ最終行を取得し、変数「LastRow」に格納 |
8 | データ開始行の3行目~データ最終行の12行目まで、以下処理を繰り返す |
10 | 「生年月日」列の値が日付として認識できた場合、 |
11 | 「日付チェック」列のセルに「OK」を設定する |
13 | 「生年月日」列の値が日付として認識できなかった場合、 |
14 | 「日付チェック」列のセルに「NG」を設定する |
Rows.Count、Endプロパティに関する記事はこちら
VBAコードの保存
「ファイル」タブをクリックします。
「名前を付けて保存」を選択し、ファイル保存画面を起動します。
①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。
最後まで読んでいただき、ありがとうございました!
本のまとめ記事はこちら