
No.3ベストアンサー
- 回答日時:
>文字列の書式で”19900101”などとセルに入力されている場合
>セルには必ず文字列で"yyyymmdd"入力されます。その日付を判定したいのですが
たぶん、ここの時点で質問内容が正しく書かれていないのではないでしょうか。文字列で、書式がyyyymmdd ということはありません。単に数字だけではないでしょうか?もし、書式で変えているなら、IsDate で判定できるし、それ以外は、エラー表示しているはずです。
それに、8桁数字は、IsDate では判定できませんね。
ご質問内容からは、ある程度の想定でコードを作りましたから、以下から必要な部分を抜き出してください。
'//
Sub MacroTest1()
Dim myDate As Variant
myDate = ActiveCell.Text '表示で取得
If IsDate(myDate) Then
MsgBox CDate(myDate)
ElseIf Len(myDate) = 8 And IsNumeric(myDate) Then '8桁で数字の場合
myDate = Format(myDate, "##/##/##") 'yyyy/mm/dd 型に変換
If IsDate(myDate) Then
MsgBox CDate(myDate) '日付型に変換
Else
MsgBox "日付に変換できません。", vbExclamation
End If
Else
MsgBox "日付に該当するデータがありません。", vbExclamation
End If
End Sub
No.5
- 回答日時:
既に入力されている値をチェックすることもいいですが、入力される時にチェックする、カレンダー機能で入力、ができればこちらも対応をお薦めします。
エラー時はメッセージでいいんでしょうか。VBAでやるということは何件かまとめた処理では?、それならいちいちメッセージは出せません。
No.4
- 回答日時:
dim s$
s="19900101"
if isdate(mid$(s,1,4) & "/" & mid$(s,5,2) & "/" & mid$(s,7,2))=false then msgbox "No!"
No.2
- 回答日時:
Formatで変換すれば、日付確認はできると思います。
IsDate(Format(日付, "0000/00/00"))
【例】
IsDate(Format(19900101, "0000/00/00")) … True
IsDate(Format(19900132, "0000/00/00")) … False
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) エクセルのマイナス表示 3 2022/03/28 16:35
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) EXCEL の判定式をお教えください 3 2022/06/08 14:37
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
Excelで8/26等の日付を全てその...
-
エクセルでENTERを押すと数式が...
-
Excelで半年後の日付を計算したい
-
入力後に日付順になるように自...
-
【マクロ】A列にある、日付(本...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
31:30:00が1900/1/1 7:30:0
-
日付の照合でFALSEになります。
-
日付入力→指定のセルの色を塗り...
-
WORDで翌日や翌々日の日付を表...
-
エクセルで日付入力欄を作成し...
-
ファイルのオープン時に今日の...
-
EXCELで直近の日付を抽出する関数
-
エクセルで月日を入力すると190...
-
数式詳しい方お教えください
-
入力日付がカレンダーにある日...
-
PC初心者です。 今さら聞くのは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】A列にある、日付(本...
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
Excelで8/26等の日付を全てその...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
エクセルで日付入力欄を作成し...
-
ファイルのオープン時に今日の...
-
エクセル関数で日付かどうかの...
-
エクセルで1年後の月末を表示さ...
-
EXCELで直近の日付を抽出する関数
-
エクセル グラフ 軸の日付表記...
-
excelで月末日を判定したい
-
WORDで翌日や翌々日の日付を表...
-
ワード差込について
-
日付の照合でFALSEになります。
おすすめ情報