|
ひげくま さん
レスありがとうございます。
>ちょっと間違いが多すぎますね。
>正しい情報を書かないと、欲しい回答は出てきませんよ。
>こちらとしては、嘘の情報に踊らされることになります。
申し訳ありません。
落ち着いて書くよう努めます。
>書式が「どんな」数値になっていますか?
0.00です。勘違いしていました。失礼いたしました。
>B列の値が代入されたセルだけではなく、B列のすべてのセルの書式を変更すると、何かまずいことになりますか?
>まずいことにならないのであれば、すべてを一気に指定するほうが簡単ですよ。
まずいことにはなりません。
なるほどと思い、
------------------------------------------------------
ファイルを検索
新規エクセル(書き込み先)作成
'指定されたフォルダ内のエクセルファイル分回す
Do While xlsFile <> ""
'既存エクセル用意
Set 既存App = CreateObject("Excel.application")
Set 既存Book = 既存App .Workbooks.Open("保管場所のパス")
Set 新規Sheet = 新規Book.Worksheets(1)
Set 既存Sheet = 既存ook.Worksheets("1")
新規Sheet.Columns("A:A").Select
Selection.NumberFormatLocal = "0.0_ "
'データ書き込み処理
With 新規xlSheet
.Range("A1") = 既存Sheet.Range("A1").Text
.Range("A2") = 既存Sheet.Range("F9").Text .
.
.
.
.
end with
'--既存エクセル終了処理
xlsFile = Dir()
Loop
'--新規エクセル終了処理
---------------------------------
としたのですが、新規Sheet.Columns("A:A").Select で「RangeクラスのSelectメソッドが失敗しました」とエラーになってしまいます。
また、
>既存Sheet.Range("A1").Copy Destination:=新規Sheet.Range("A1")
>ではどうでしょう?
>Copyメソッドを使えば、値も書式も、セルのすべてがコピーされますよ。
これもなるほど!と思い、そのままがコピーできるのであれば、それが一番なので、
------------------------------------------------------
ファイルを検索
新規エクセル(書き込み先)作成
'指定されたフォルダ内のエクセルファイル分回す
Do While xlsFile <> ""
'既存エクセル用意
Set 既存App = CreateObject("Excel.application")
Set 既存Book = 既存App .Workbooks.Open("保管場所のパス")
Set 新規Sheet = 新規Book.Worksheets(1)
Set 既存Sheet = 既存ook.Worksheets("1")
'データ書き込み処理
既存Sheet.Range("A1").Copy Destination:=新規Sheet.Range("A1")
.
.
.
.
.
'--既存エクセル終了処理
xlsFile = Dir()
Loop
'--新規エクセル終了処理
---------------------------------
と、データ書き込み処理の代わりにこのまま試してみたら、「Range クラスの Copy メソッドが失敗しました」というエラーが出てしまいました。
ヘルプ等確認したのですが、構文の間違いを見つけることができず、またとまってしまいました。
どこか間違いがあるのでしょうか?
申し訳ありません・・・。
※一つ前のわたしの記事で、「例えば新規ファイルの2シート目のB列が・・・」と質問させていただきましたが、コードは最初の例に合わせて新規ファイルの1シート目のA列を数値に設定する、という風にしました。
|
|