[[20150304132644]] 『貼り付け時に縦のデータを横に貼りたい』(hoge) ページの最後に飛ぶ

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

 

『貼り付け時に縦のデータを横に貼りたい』(hoge)

はじめまして。

以前、こちらのサイトで展開いただいたコードをベースにアレンジしたいのですが、
いまいちうまくいかないので、質問させていただきました。

コードに対し、幾つか添削をしているので、不要な部分もあるかと思いますが、
ご確認いただけないでしょうか。

■この処理の内容(やりたいこと)
 1, "C:\Users\aaa\Desktop\test\"に集約したcsvファイルを1ファイルづつ読込み、
   sheet1へ貼り付けていく。
   貼り付けはファイル毎に表がわかれており、データは全て縦に貼り付け。
  (ファイルが無くなるまでループ)

 2, 全ての行の間隔を調整し、B列を左寄せにし、罫線を付ける。

■今回修正したいポイント
 1, コードのデータ貼り付け時、csv側で縦に格納されているデータを横に貼り付けたい。
   →csvファイルの中身は3行づつ個人情報が格納されているため、B〜D列に貼り付けたい。

 2, A列には、自動で番号を採番されるようにしたい。(ファイル変更時には採番1からスタート)

 3, 貼付け時、1行目はファイル名を入れ、A列〜D列まで結合。
   その際、1行目のみ色を付けたい。

 Sub test()
    Const cPATH = "C:\Users\aaa\Desktop\test\"
    Dim vw As Variant
    Dim i As Long
    Dim iR As Long
    Dim iMax As Long
    Dim cFile As String

    iR = 1
    vw = Array("A", "B", "C", "D")

    cFile = Dir(cPATH & "*.csv")
    While cFile <> ""
        With Workbooks.Open(cPATH & cFile, False, True)
            Cells(iR, "A").Value = Split(cFile, ".")(0)
            Range(Cells(iR, "A"), Cells(iR, "D")).MergeCells = True
            Range(Cells(iR + 1, "A"), Cells(iR + 1, "D")) = Array("No", "ID", "氏名", "所属")
            With .Sheets(1)
                iMax = .Cells(.Rows.Count, "A").End(xlUp).Row
                For i = 0 To UBound(vw)
                    .Range(.Cells(1, vw(i)), .Cells(iMax, vw(i))).Copy Cells(iR + 2, i + 1)
                Next i
                iR = iR + iMax + 2
            End With
            .Close
        End With

        cFile = Dir
    Wend

    Columns("A:D").AutoFit

    Columns("B:B").Select

    With Selection
        .HorizontalAlignment = xlLeft
    End With

    k = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(1, 1), Cells(k, 4)).Borders.LineStyle = xlContinuous

 End Sub

宜しくお願いします。

■完成イメージ

|  A列  | |B列  |  C列  |  D列  |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
|          ファイル名          | ←結合する
−−−−−−−−−−−−−−−−−−−−−−−−−−−
|   ID   |  ID  |  氏名  |  所属  |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
|   1   | tanaka |  田中  | 第1部  |
−−−−−−−−−−−−−−−−−−−−−−−−−−−
|   2   |  ito  |  伊藤  | 第2部  |
−−−−−−−−−−−−−−−−−−−−−−−−−−−

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


どうやら私のコーディングですね。見覚えがあります。

ソースと出力イメージを見比べると、前のものと違わない結果なのですが、3行続くという個人情報とはどれでしょうか?
また、ID列は、以前はデータ中にあったのですが、今度のはデータ中には無いですか?
inputをもっと明確に提示してください。

あと、ここまでのコーディング例を出しているのだから、応用はどんなに時間がかかろうと、ご自身で行うべき。
私は貴方の専属プログラマじゃありませんから、頼まれても困ります。
(???) 2015/03/04(水) 15:23


???さん

ありがとうございます。

以前も大変お世話になりました。
時間をかけて自分で対応してみます。

(hoge) 2015/03/04(水) 15:36


コメント返信:

[ 一覧(最新更新順) ]


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