掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EXCELの指定列の表示形式変更について (ID:84698)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Range("A:A").Select > Selection.NumberFormatLocal = "0_ " これらは、「Excel VBA」の構文ですよね。 Active/Select系のプロパティ、メソッドは、処理が曖昧になりますので、 外部から(この場合はVBから)の呼び出しの場合には使わないでください。 Excelではなく、VBの場合でも、 Text1.Text = "あいうえお" とは書きますが、それを、 Text1.SetFocus ActiveControl.Text = "あいうえお" という書き方はしませんよね。それと同じ事です。 この場合は、 ExcelW.Worksheets("Sheet1").Range("A:A").NumberFormat = "0_ " のようにします。 > ActiveWorkbook.SaveAs Filename:="C:\Test2.xls" 先の Range や Selection もそうなのですが、このようなコードは、 『Excelが終了しない』という問題を引き起こしますよ。 この場合は、 ExcelA.ActiveWorkBook.SaveAs Filename:="C:\Test2.xls" あるいは、 ExcelW.SaveAs Filename:="C:\Test2.xls" のようにします。 前者は、「アクティブなブック」を別名で保存する処理、 後者は、先に開いた"C:\Test1.xls" を別名で保存する処理です。 ついでに書くと、このように、Test1.xls を元にして(テンプレートにして) 別のファイルを作成する場合、*.xls ではなく、*.xlt が良く利用されます。 # 試しに、*.xlt を作成し、ファイルを右クリックしてみてください。 # [開く]とは別に、[新規作成]という項目が現れるはずです。 その場合、 Set ExcelW = ExcelA.Workbooks.Open("C:\Test1.xlt") ではなく、 Set ExcelW = ExcelA.Workbooks.Add("C:\Test1.xlt") のようにします。(Openはテンプレート自体の編集の意味になります) このように、Workbooks.Addで生成しておけば、誤って元のファイルを 上書きしてしまう事を防ぐ事ができますよ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.