- 締切済み
CSVファイルの取り込みについて
CSV取り込み方法について 教えていただきたくお願いいたします。 エクセルのマクロ・VBAの組み方について デスクトップ上の000という名前のCSVファイルを、作業しているエクセルファイルのLoadという名前のシートに貼り付けたいと思っています。 CSVファイルはエクセルで開くと1行に11列の項目が展開されています。 貼り付ける項目はこのようになります。 (CSV) →(エクセルのLoadシート) 1列目(A行)→B行へ 2列目 →C行へ 3列目 →D行へ 4列目 →E行へ 5列目 →F行へ 9列目 →G行へ 10列目 →H行へ 11列目 →I行へ (6.7.8列目は使いません) 最後にLoadのシートのA行に”=B&E”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
> 読み込みの000ファイルですが、デスクトップではなく、 > 「どのファイルを読み込みますか?」という形で > ファイル指定をして読み込むという形にする場合はどのように ファイル指定をしてとは、000.csvに限らないCSVファイルということでしょうか? それなら、こういう感じでは? Sub test01() Dim wb As Workbook If Application.Dialogs(xlDialogOpen).Show("*.csv") = False Then MsgBox "キャンセル" Exit Sub Else Set wb = ActiveWorkbook End If With ThisWorkbook.Sheets("Load") .Cells.ClearContents wb.Sheets(1).UsedRange.Copy .Range("B1") wb.Close (False) .Range(.Cells(1, "B"), .Cells(Rows.Count, "B").End(xlUp)).Offset(, -1).Formula = "=B1&E1" .Range("G:I").Delete End With End Sub なお、エクセルではA行とかB行とはいいません。A列B列です。
- imogasi
- ベストアンサー率27% (4737/17069)
ファイルを開く操作でマクロの記録を取り、パスをデスクトップに指定すれば仕舞い。 Sub Macro4() Range("A1").Select Workbooks.Open Filename:="C:\Documents and Settings\XXXX\My Documents\例3.csv" End Sub のようなのを手直しすれば良い。 列並びなど元のでは気に食わなければ、修正すれば良い。 ーー >行に”=B&E” Bとかはセル番地か? データがシートに出来上がってから、データ全行で文字列結合をすれば良い。これもマクロの記録で出来る。
- keithin
- ベストアンサー率66% (5278/7941)
sub macro1() dim w as workbook with thisworkbook.worksheets("Load") .cells.clearcontents set w = workbooks.open(filename:="あなたのデスクトップのパス\000.csv") w.worksheets(1).usedrange.copy destination:=.range("B1") application.cutcopymode = false w.close savechanges:=false .range("G:I").delete shift:=xlshifttoleft .range("A1:A" & .range("B65536").end(xlup).row).formula = "=B1&E1" end with end sub などで。
補足
ありがとうございます。 もう1つよろしければ、お伺いしたいのですが・・・ 読み込みの000ファイルですが、デスクトップではなく、 「どのファイルを読み込みますか?」という形で ファイル指定をして読み込むという形にする場合はどのように すればいいでしょうか?