メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Microsoft Excel ワークシートのセルの値にプログラムによって変更を加えると、指定したミリ秒の値が最も近い秒に丸められます。 この問題は、次の条件が満たされている場合に発生します。

  • 設定を変更すると、VBA の日付形式またはバリアント型の日付形式がセルに割り当てられます。

  • プログラムによる変更を行うには、Visual Basic for Applications マクロを使用するか、外部オートメーションクライアントを使用します。

この問題は、実行する変更によって、セルに日付形式または時刻形式が割り当てられている場合には発生しません。

原因

この問題は、Excel がコントロールパネルの[地域と言語のオプション] の [地域と言語のオプション] タブで指定されている日付と時刻の形式に従って日付文字列の書式を設定したために発生します。 この値は、最も近い秒単位に丸められます。 この値がセルに割り当てられ、そのセルの新しい日付値が生成されるまで値が再計算されます。

回避策

この問題を回避するには、次のいずれかの方法を使用します。

方法 1

日付の値を、1秒の小数を含む文字列形式に変換することができます。 この文字列値は、ミリ秒を保持する日付形式として割り当てることができます。

方法 2

Range オブジェクトの Value2 プロパティを使って、ミリ秒を保持することができます。 たとえば、次の VBA コードを使用できます。

Sub CopyValueUsingVBDate()   Dim d As Date   d = ActiveSheet.Range("A1").Value   ActiveSheet.Range("B1").Value2 = dEnd Sub

関連情報を参照するには、次のマイクロソフト サポート技術情報番号をクリックしてください。

182812 Range オブジェクトの Value2 プロパティの説明

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×