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 = varArray
End 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 = varArray End Sub

結果

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

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

文書番号:2295108 - 最終更新日: 2016/10/04 - リビジョン: 1

フィードバック