- ベストアンサー
Excelで、開いたファイルを消したい
Excel2000ですが、 デスクトップ上に保存したcsvファイルを開く ↓ 作業中のブックにシートを増やしそこに先ほど開いたcsvファイルを貼り付けてシート名を変更 ↓ 開いたcsvファイルを閉じる という作業ですが、VBAマクロにするとどういうプログラムになるのでしょうか?教えてください。
- みんなの回答 (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
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。まあ、こんなところかな? デスクトップは、ユーザーデスクトップにしておきました。 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
補足
またしても私の書き方が悪くてすみません。 作業中のブックにシートを増やしそこに先ほど開いたcsvファイルを貼り付けてシート名を変更 ↓ 開いたcsvファイルを閉じる と書きましたが(実際このプログラムは一発OKでしたが)、 開いたcsvファイルをコピーして、作業中のブックのSheet2の<後>に貼り付け、そのシート名"データ表"を作る ↓ 開いたcsvファイルを閉じる にして頂きたいです。(わがまま言ってすみません) お願いいたします。(本当Wendy02さんに頼ってばっかりで申し訳ないです)
お礼
完璧です。マクロに精通している人なら、このくらい朝飯前なのでしょうね。うらやましい。いつもありがとうございます。本当に助かっております。