現在オフラインです。再接続するためにインターネットの接続を待っています

Excel 2010 で Range オブジェクトの特定のプロパティへ配列の全要素を一度に代入すると自動的にセルの書式設定がされない

現象
Microsoft Excel 2010 で、Range オブジェクトの以下のプロパティへ配列の全要素を一度に代入すると、自動的にセルの書式設定がされません。
  • Range.Value プロパティ
  • Range.Value2 プロパティ
  • Range.Formula プロパティ
  • Range.FormulaLocal プロパティ
  • Range.FormulaR1C1 プロパティ
  • Range.FormulaR1C1Local プロパティ
解決方法
この問題を解決するには、以下の修正プログラム パッケージをインストールしてください。

修正プログラム パッケージについては、 次のサポート技術情報を参照してください。

2405840 Excel 2010 の修正プログラム パッケージ (2010 年 10 月 26日) について


回避策
この現象を回避するには、以下のいずれかの方法を実行してください。

方法 1: 明示的に書式を設定する


例 :
Sub Macro()    Dim varArray(3)    varArray(0) = "1,000"    varArray(1) = "2010/06/30"    varArray(2) = "09:30"    varArray(3) = "100.00%"    ' 回避策    Columns("A:A").NumberFormatLocal = "#,##0"    Columns("B:B").NumberFormatLocal = "yyyy/m/d"    Columns("C:C").NumberFormatLocal = "h:mm"    Columns("D:D").NumberFormatLocal = "0.00%"    Range("A1:D1").Value = varArrayEnd Sub
方法 2 : 配列の各要素を 1 つずつ Range オブジェクトへ代入する

例 :
Sub Macro()    Dim varArray(3)    varArray(0) = "1,000"    varArray(1) = "2010/06/30"    varArray(2) = "09:30"    varArray(3) = "100.00%"    ' 回避策    Range("A1").Value = varArray(0)    Range("B1").Value = varArray(1)    Range("C1").Value = varArray(2)    Range("D1").Value = varArray(3)End Sub
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細

問題の再現手順

Excel 2010 の VBEditor を起動し、以下のマクロを実行します。
Sub Macro() Dim varArray(3) varArray(0) = "1,000" varArray(1) = "2010/06/30" varArray(2) = "09:30" varArray(3) = "100.00%" Range("A1:D1").Value = varArrayEnd Sub

結果

各セルに正しく書式が設定されず、以下の値が表示されます。

A1 : 1000
B1 : 40359
C1 : 0.395833
D1 : 1
プロパティ

文書番号:2295108 - 最終更新日: 12/02/2010 04:41:00 - リビジョン: 2.1

Microsoft Excel 2010

  • kbharmony kbexpertiseinter kbexpertiseadvanced kbtshoot kbbug kbfix KB2295108
フィードバック