[[20171205174341]] 『VBA CSVファイルを複数から処理』(Ryan) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA CSVファイルを複数から処理』(Ryan)

先ほどCSVの書き出しで質問させていただいたものです。
同じデータ数を持つ複数のCSVファイル(具体的にはR,G,Bの3つ)をVBAで処理を行い、その計算結果を新しいCSVのB列,C列,D列に格納するという処理を行いたいです。
R,G,B、別々で処理を行うとB列にRのデータ、C列にGのデータ,D列にBのデータが
新しいCSVに格納されるのは確認済みです。
R,G,BのCSVデータは全て同じフォルダに入っております。
Workbooks.Openなど試してみたのですが、使い方が悪いのか上手くいかなかったため、詳しい方がおられましたらご教授願いたいです。

  '※ここからループ開始?

  '(4 + X_c + Y_c * 10, 200)〜Cells(4 + X_c + Y_c * 10 + 55, 200)にCSVから色々計算して、計算結果を入れる処理は省略

    rng = Selection.Address
    rng = Cells(4 + X_c + Y_c * 10, 200).Address & ":" & Cells(4 + X_c + Y_c * 10 + 55, 200).Address
    'シート名
    sname = ActiveSheet.Name
    '新しいシートを追加し、選択範囲をコピー
    If fileflag = 1 Then
    Worksheets(sname).Range(rng).Copy Destination:=Worksheets.Add.Range("B1")

    ElseIf fileflag = 2 Then
    Worksheets(sname).Range(rng).Copy Destination:=Worksheets.Add.Range("C1")

    ElseIf fileflag = 3 Then
    Worksheets(sname).Range(rng).Copy Destination:=Worksheets.Add.Range("D1")

    Else
    Worksheets(sname).Range(rng).Copy Destination:=Worksheets.Add.Range("Z1")
    End If

  

    '※ここまでR,G,Bでループさせる?

    '新しいブックを作成し、そこにシートを移動する
    ActiveSheet.Move
    For t = 0 To 54
    Cells(1 + t, 1) = (-27 + 20 + t) * 3.1415 / 180
    Next

 fileflagはActiveWorkbook.NameのR.G.BのCSV名で判断しております

以上、よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 >Workbooks.Openなど試してみた

 ちょっと、情報不足気味なんじゃないですか?
 Openメソッドがどう絡んでくるのは不明瞭です。

 少なくとも、初回のファイルがどう扱われているのかが分からないと、
 推測する部分が徒に膨らみます。

 >Worksheets(sname).Range(rng).Copy Destination:=Worksheets.Add.Range("B1")
 同一シート上に書きたいなら、毎回Addメソッドを使う訳にはいかないですよ。

 ループ開始前に1枚挿入して、そのシート(WshToWrite)を覚えて置き、
 毎回そのシートに書き込むことになります。

 Dim WshToWrite As Worksheet

 Set WshToWrite = Worksheets.Add '事前準備として、シートを一枚挿入する
  
   '省略 

   '※ここからループ開始

     '省略

     If fileflag = 1 Then
     Worksheets(sname).Range(rng).Copy Destination:=WshToWrite.Range("B1")

     ElseIf fileflag = 2 Then
     Worksheets(sname).Range(rng).Copy Destination:=WshToWrite.Range("C1")
   ’省略
     End If

     '※ここまでR,G,Bでループさせる

     '省略

(半平太) 2017/12/06(水) 09:42


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.