Excel VBA でNumberFormatプロパティを使用する方法。。。

解決


まつ  2006-10-19 00:25:16  No: 96958

おはつです。
どうしても出来ないのでどなたかご教示いただきたく思います。

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_"

・パターン⑤
   セル内を削除してから実行

上記①〜⑤など色々なパターンで実行してみましたが、すべて同じエラーが発生します。
どなたか原因に心当たりのある方がいらっしゃいましたら、ご教示いただければ幸いです。
よろしくお願いします。


ヤマ@文系  2006-10-19 00:44:48  No: 96959

>NumberFormatLocalプロパティを設定できません。
設定することができないプロパティなのではないでしょうか。
普通に一旦セルのvalueをstring変数に代入してformat関数をつかってみてはいかがですか?
valueに戻してやったらいかがですか。


特攻隊長まるるう  2006-10-19 00:53:21  No: 96960

[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


まつ  2006-10-19 02:25:29  No: 96961

大変申し訳ございません。
原因がわかりました。

MAIN_SHEET.Cells(iRow, iCol).NumberFormatLocal = "#,##0.0_ "

上記"#、##0.0_ " なぜか、上記「_」の次に、半角スペースを入れると正常に処理が出来ました。

ヤマ@文系 さん、特攻隊長まるるう さん
返信の方、どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加