エクセルのマクロを作って下さい。
文章が下手なもので理解しづらいかもしれませんが、宜しくお願い致します。
私の要望通りのものでしたら、200ポイントを差し上げます。
【前提】
My Documentに以下のフォルダがあり、
フォルダ名:cccc
その中に以下のファイルが2つある。
ファイル名:aaaa.xls
ファイル名:bbbb.csv
aaaa.xlsにはsheet1からsheet8まである
bbbb.csvのA列の各行には、文字が入力されている。
列はA列からU列まであり、B列からU列には、ブランクのセルもある。
A列の最終行は◆行(セルA◆)とする。
◆行は、そのときにより変わる。
・CSVファイルからデータをエクセルファイルへ移行
ファイル名:bbbb.csvの
A列からU列まで、2行目からA列に入力されている最終行(A2:U◆)までを選択しコピー。
ファイル名:aaaa.xls
のシート名:sheet1に、セルA2を左上として、上記「コピー」を貼付け(即ち、A2:U◆に貼り付けることになる)。
コピー解除。
独立した質問かと思ったら、全部関連したものだったのですね。
とりあえずQ1から追って回答します。
'---------------------------------------------------------------------------- Sub pinkoQ1() '---------------------------------------------------------------------------- ' マイドキュメント\cccc\bbbb.csv の2行目以降を aaaa.xls のSheet1 へコピー '---------------------------------------------------------------------------- Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("MyDocuments") & "\cccc\aaaa.xls" Dim dstWB As Workbook Set dstWB = Workbooks.Open(Path) Path = WSH.SpecialFolders("MyDocuments") & "\cccc\bbbb.csv" Dim srcWB As Workbook Set srcWB = Workbooks.Open(Path) Dim lastRow As Long lastRow = srcWB.Worksheets(1).Range("A" & Rows.Count).End(xlUp).Row srcWB.Worksheets(1).Range("A2").Resize(21, lastRow - 1).Copy _ Destination:=dstWB.Worksheets("Sheet1").Range("A2").Resize(21, lastRow - 1) srcWB.Close End Sub
ありがとうございました。
とても助かりました。