• ベストアンサー

Excelで、開いたファイルを消したい

Excel2000ですが、 デスクトップ上に保存したcsvファイルを開く ↓ 作業中のブックにシートを増やしそこに先ほど開いたcsvファイルを貼り付けてシート名を変更 ↓ 開いたcsvファイルを閉じる という作業ですが、VBAマクロにするとどういうプログラムになるのでしょうか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >開いたcsvファイルをコピーして、作業中のブックのSheet2の<後>に貼り付け、そのシート名"データ表"を作る こんな風かな? Sub CsvAddSheet2() Dim FileName As String, myPath As String, myDesktop As String  myPath = ThisWorkbook.Path  'ユーザーデスクトップの取得  myDesktop = CreateObject("WScript.Shell").SpecialFolders(1)  ChDir myDesktop  'オープンファイル・ダイアログ   FileName = Application.GetOpenFilename _     ("Excel(*.csv),*.csv")     If FileName = "False" Then Exit Sub  'Sheet2の後ろに、新たなシートを加えて、  With Sheets.Add(After:=Sheets("Sheet2"))   Workbooks.Open FileName, , True   ActiveSheet.Cells.Copy .Range("A1")  'シートの名前を「データ表」にする   .Name = "データ表"   ActiveWorkbook.Close  End With  'ディレクトリを戻す  ChDir myPath End Sub

okkouta
質問者

お礼

完璧です。マクロに精通している人なら、このくらい朝飯前なのでしょうね。うらやましい。いつもありがとうございます。本当に助かっております。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。まあ、こんなところかな? デスクトップは、ユーザーデスクトップにしておきました。 Sub CsvAddSheet() Dim FileName As String, myPath As String, myDesktop As String  myPath = ThisWorkbook.Path  'ユーザーデスクトップの取得  myDesktop = CreateObject("WScript.Shell").SpecialFolders(1)  ChDir myDesktop  'オープンファイル・ダイアログ   FileName = Application.GetOpenFilename _     ("Excel(*.csv),*.csv")     If FileName = "False" Then Exit Sub  With Sheets.Add(After:=Sheets(Sheets.Count))   Workbooks.Open FileName, , True   ActiveSheet.Cells.Copy .Range("A1")   ActiveWorkbook.Close  End With  'ディレクトリを戻す  ChDir myPath End Sub

okkouta
質問者

補足

またしても私の書き方が悪くてすみません。 作業中のブックにシートを増やしそこに先ほど開いたcsvファイルを貼り付けてシート名を変更 ↓ 開いたcsvファイルを閉じる と書きましたが(実際このプログラムは一発OKでしたが)、 開いたcsvファイルをコピーして、作業中のブックのSheet2の<後>に貼り付け、そのシート名"データ表"を作る ↓ 開いたcsvファイルを閉じる にして頂きたいです。(わがまま言ってすみません) お願いいたします。(本当Wendy02さんに頼ってばっかりで申し訳ないです)