おはつです。
どうしても出来ないのでどなたかご教示いただきたく思います。
OS:Windows2000
Excel:Office2000(Excel2000)
●質問内容●
Book1.Sheet1のA1セルの表示形式を
NumberFormatプロパティで整数→小数に変更する処理をマクロで記述しているのですが、毎回下記エラーで落ちてしまいます。
●エラー内容●
RangeクラスのNumberFormatLocalプロパティを設定できません。
●プログラム処理●
Set MAIN_SHEET = Workbooks("Book1").Worksheets("Sheet1")
・パターン①
MAIN_SHEET.Cells(iRow, iCol).NumberFormatLocal = "#,##0.0_"
・パターン②
MAIN_SHEET.Range("A1").NumberFormatLocal = "#,##0.0_"
・パターン③
MAIN_SHEET.Cells(iRow, iCol).NumberFormat = "#,##0.0_"
・パターン④
MAIN_SHEET.Range("A1").NumberFormat = "#,##0.0_"
・パターン⑤
セル内を削除してから実行
上記①〜⑤など色々なパターンで実行してみましたが、すべて同じエラーが発生します。
どなたか原因に心当たりのある方がいらっしゃいましたら、ご教示いただければ幸いです。
よろしくお願いします。
>NumberFormatLocalプロパティを設定できません。
設定することができないプロパティなのではないでしょうか。
普通に一旦セルのvalueをstring変数に代入してformat関数をつかってみてはいかがですか?
valueに戻してやったらいかがですか。
[Excel 2002(sp2) VBA]
Sub test()
Dim MAIN_SHEET As Worksheet
Set MAIN_SHEET = Workbooks("Book1").Worksheets("Sheet1")
MAIN_SHEET.Range("A1").NumberFormat = "General" '通った
MAIN_SHEET.Range("A1").NumberFormat = "#,##0.0_);[Red](#,##0.0)" '通った
MAIN_SHEET.Range("A1").NumberFormat = "#,##0.0_" '落ちた
End Sub
大変申し訳ございません。
原因がわかりました。
MAIN_SHEET.Cells(iRow, iCol).NumberFormatLocal = "#,##0.0_ "
上記"#、##0.0_ " なぜか、上記「_」の次に、半角スペースを入れると正常に処理が出来ました。
ヤマ@文系 さん、特攻隊長まるるう さん
返信の方、どうもありがとうございました。
ツイート | ![]() |