Microsoft 製品に組み込まれている Visual Basic の実装。
VBA専用のフォーラムがあるため、並行してご投稿ください。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
VBAコードで保存したExcelファイルを再び開いたときに書式が変わってしまい、困っています。
手動で保存したファイルを再び開くときは変わらないです。
値が-1000のとき、赤く-1,000としたいところが(\1,000)となってしまいます。
書式でいうと
#,##0;[赤]-#,##0
が
#,##0_);[赤]
となってしまっています。
SaveAsのオプション引数もいろいろ試しましたが効果はありませんでした。
下記のコードを適当フォルダに新規vbsファイルを作ってコピペして実行していただければ、状況が再現できます。
何かわかる方ございましたら、お力を貸してください。
set app = CreateObject("Excel.Application")
app.Visible = True
app.DisplayAlerts = False
set wb = app.Workbooks.Add()
set ws = wb.ActiveSheet
ws.Cells(1,1) = -1000
ws.Cells(1,1).NumberFormatLocal = "#,##0;[赤]-#,##0"
wb.SaveAs Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, ".")) & ".xlsx"
wb1name = wb.FullName
wb.Close
set wb = app.Workbooks.Add()
set ws = wb.ActiveSheet
wb.SaveAs Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, ".")) & "2.xlsx"
ws.Cells(1,1) = -1000
ws.Cells(1,1).NumberFormatLocal = "#,##0;[赤]-#,##0"
app.DisplayAlerts = True
app.Workbooks.Open(wb1name)
答えがここにありました。SaveAsのLocal:=Trueで解決しました。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
VBA専用のフォーラムがあるため、並行してご投稿ください。
ありがとうございます。そちらで質問することにします。
類似の質問を見つけられました。しかし、まだ不服があるので趣旨を少し変えて投稿します。
答えがここにありました。SaveAsのLocal:=Trueで解決しました。