• 締切済み

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”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 読み込みの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)
回答No.2

ファイルを開く操作でマクロの記録を取り、パスをデスクトップに指定すれば仕舞い。 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)
回答No.1

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 などで。

moromaronunu
質問者

補足

ありがとうございます。 もう1つよろしければ、お伺いしたいのですが・・・ 読み込みの000ファイルですが、デスクトップではなく、 「どのファイルを読み込みますか?」という形で ファイル指定をして読み込むという形にする場合はどのように すればいいでしょうか?

関連するQ&A

専門家に質問してみよう