Excel VBAIsDate関数を理解する

VBAのIsDate関数は、テキスト文字列を日付として解釈できるかどうかを示していると思われます。たとえば、次の式はすべてTrueと評価されます。

IsDate(“ 5/25/2015”)
IsDate(「1月16日」)
IsDate(“ 12-1”)
IsDate(“ 12/1/15”)
IsDate(“ 2/30”)
IsDate(“ 30/2”)

最後の2つの例では、IsDateが日と月の順序を気にしないことに注意してください。これらの文字列は両方とも日付として解釈される可能性があるため、IsDateは(システムの日付形式の設定に関係なく)Trueを返します。

Microsoftサポートの記事からの情報は次のとおりです。

VBA日付関数IsDate、Format、CDate、およびCVDateは、OLEオートメーション(OleAut32.dll)にある関数を利用します。この関数は、日付を表す文字列内の区切られた各値をトークン化することにより、可能なすべての日付形式を検索し、入力を日付として表すことができるかどうかを示すブール値を返します。

これは、関数を使用して2桁の年を含む日付を解釈するときに覚えておくことが重要です。異なるロケールはさまざまな日付形式(つまり、mm / dd / yy、yy / mm / dd、DD MMM YY YY MMM DD など)を使用するため、関数は、関数が有効な日付を検出したか、すべての可能性を使い果たしました。

IsDateが文字列を日付として認識するからといって、文字列を確実に日付に変換できるとは限りません。場合によっては、結果があいまいになります。たとえば、この式はどうですか?

IsDate(“ 29-Feb-01”)

2001年2月29日は有効な日付ではありません。ただし、1929年2月1日(および1929年1月2日)が有効な日付であるため、この式はTrueを返します。そして、2029年の同じ日付もそうです。

IsDateドキュメントの検索が空になりました。テストに基づいて、IsDateは、スラッシュ(/)、ハイフン(-)、コンマ(、)、ドット(。)、およびスペースのいずれかを区切り文字として受け入れます。

したがって、次の式はすべてTrueを返します。

IsDate(“ 5.1”)
IsDate(“ 30 6”)
IsDate(“ 30,6”)
IsDate(“ 1/2”)

しかし、この異常があります。次の式はTrueを返します。

IsDate(“ 5.1.5”)
IsDate(“ 5.1.05”)

ただし、不明確に、この式はFalseを返します。

IsDate(“ 5.1.2005”)

ユーザーが日付を入力するInputBoxを使用してユーザーフォームを作成したとします。IsDateを使用してエントリを検証することはあまり信頼できないことは明らかです。

IsDateが時間値もカバーしていることに気付くと、事態はさらに混乱します。(対応するIsTime関数はありません。)したがって、次の式はすべてTrueを返します。

IsDate(“ 4:45”)
IsDate(“ 4.45”)
IsDate(“ 4 45”)
IsDate(“ 4/45”)
IsDate(“ 23:59”)

これらの式はFalseを返します。

IsDate(“ 4:60”)
IsDate(“ 24.45”)

Range引数を渡すと、IsDateがこれらの癖のすべてを示すわけではないことを指摘することが重要です。例えば:

IsDate(Range(“ A1”))

IsDateは、日付または時刻を含むセルを識別するのに完全に信頼できるようです。たとえば、日付として5.1を含むセルは識別されません。文字列を日付として解釈できるかどうかをコードで判断する必要がある場合、最善の解決策は、その文字列をセルに配置してから、セルの内容を確認するコードを記述することです。


スマートシート 9.1.1

スマートシート 9.1.1

Smartsheet は、プロジェクトの管理、ワークフローの構築、チームとの共同作業を可能にする動的な作業プラットフォームです。

共有ポイント

共有ポイント

SharePoint は、さまざまなワークフロー アプリケーション、「リスト」データベース、その他の Web コンポーネント、およびビジネス グループの共同作業を制御するためのセキュリティ機能を使用する Web ベースのコラボレーション システムです。

パーペチュアルカレンダー 1.0.38/1.0.36

パーペチュアルカレンダー 1.0.38/1.0.36

Van Nien Calendar は、携帯電話でカレンダーを表示するアプリケーションです。携帯電話で太陰太陽の日付をすぐに確認できるため、重要な仕事を計画することができます。

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook は、Microsoft Corporation によって開発されたビジネスおよび生産性アプリケーションです。

クリックアップ

クリックアップ

ClickUp は、あらゆるビジネスにとって最も評価の高い生産性プラットフォームの 1 つです。Google、Booking.com、サンディエゴ・パドレス、Uber などの大企業はすべて、職場の生産性を向上させるために ClickUp を使用しています。

PDF-XChange ビューア 2.5.322.10

PDF-XChange ビューア 2.5.322.10

PDF は、テキスト ドキュメントの読み取り、作成、送信に一般的に使用される形式になっています。その結果、この種のドキュメントに使用されるプログラムの数も増加しました。PDF-XChange Viewer は、ますます多くの PDF ビューアの 1 つです。

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice は、特に Excel、PowerPoint、Word など、Microsoft 365 に匹敵する Office アプリケーションの完全なスイートを提供します。プロジェクトをより効率的に管理できるようになり、いくつかのファイル形式がサポートされます。

iTaxviewer 1.8.7をダウンロード

iTaxviewer 1.8.7をダウンロード

iTaxViewer ソフトウェアは、現在最も人気のある XML ファイル読み取りソフトウェアです。このソフトウェアは、国税総局のXML形式の電子申告書を閲覧するためのアプリケーションです。

Nitro PDF リーダー

Nitro PDF リーダー

Nitro PDF Reader は、ほとんどの人が PDF ドキュメントを使用して毎日実行する基本的なタスクをすべてカバーする便利な PDF エディターです。

Foxit リーダー 12

Foxit リーダー 12

Foxit Reader は主に PDF リーダーですが、PDF ファイルの作成、署名、編集、注釈の追加も可能です。オペレーティング システム上で動作し、Microsoft Office パッケージのさまざまなプログラム用のプラグインがあります。