• 締切済み

別ブックへシートコピーでシート名が違う名

別ブックへシートコピーでシート名が違う名前でコピーされてしまします。 環境 : エクセル2010 windows7 home (1)WEBページからコピーしてきたねたを、貼り付けCSVにして保存したいのです。 (2)ユーザーフォームからフォルダに名前を付けてデスクトップにフォルダを新規作成します。 (3)で、CSVにしたファイルを上記新規フォルダ内に保存したいのです。 問題点: 新規ブックをAddしているのですが、シート名も元のブックからコピーできているはずが、指定している保存先の名前になってしまいます。(変換後CSVファイル)になってしまう。 本当は(変換)となるはずなんですが・・・その時、Beforeでシート1の左にくるはずが、なぜか上記間違った名前のシートのみになってしまいます。 あと、これをパスを替えてほかのXPのPCで走らせると、(1)でコピペしたねたが消えてしまいます。 (保存はできますがねたがないと・・・) 上記問題点を解決したいのでどなたかどうぞご教授ください。 構文 Private Sub CommandButton1_Click() Dim a As Object Dim b As String Set a = CreateObject("Scripting.FileSystemObject") b = "C:\Users\Owner\Desktop\" & Me.TextBox1.Value 'フォルダ作成 If MsgBox("入力内容に間違いはありませんか?", vbYesNo) = vbYes Then a.Createfolder b Else Me.TextBox1.SetFocus Exit Sub End If 'フォルダ作成 その中に CSV保存 Dim ws As String Dim oWbk As Workbook Set oWbk = Workbooks.Add ws = "変換" Workbooks("suzuki csv 変換.xlsm").Worksheets(ws).Copy Before:=oWbk.Worksheets("Sheet1") oWbk.SaveAs Filename:="C:\Users\Owner\Desktop\" & Me.TextBox1.Value & "\変換後CSVファイル.csv", FileFormat:=xlCSV, CreateBackup:=False oWbk.Close SaveChanges:=True Unload Me Workbooks("suzuki csv 変換.xlsm").Activate Columns("A:H").Select Selection.ClearContents Rows("1:3").Select Selection.Delete Shift:=xlUp Range("A1").Select Dim w As Workbook '全ての Book を保存する For Each w In Workbooks w.Save Next 'Excel を終了する Application.Quit 'Book を閉じる ThisWorkbook.Close False End Sub 作業途中で構文が荒れていますが、ご容赦ください。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

> あと、問題点のXPでコピペしたネタが消えるほうもできればご指導いただきたいのですが・・・ 手元にはすでにXPの環境が無いので確認できていませんのでソースを見ただけでの推測ですが、CSVで保存する際に「変換」シートではない空のシートを保存しているのかも知れません。 CSV保存の前に oWbk.Worksheets(ws).Select と入れるとどうでしょう? あるいは、「'フォルダ作成 その中に CSV保存」から「Unload Me」の間を以下のように変えて変換シートのみのブックを作成・保存するとか…… Sheets("変換").Copy ActiveWorkbook.SaveAs Filename:="C:\Users\Owner\Desktop\" & Me.TextBox1.Value & "\変換後CSVファイル.csv", FileFormat:=xlCSV ActiveWindow.Close

gonta_884
質問者

補足

ずいぶんと時間が経ってしまい申し訳ありません。 あれからHDDがクラッシュしてしまい。本日手元にPCが戻ってまいりましたので、 ご教授いただいた内容をためしてみます。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

誤解があるみたいですね。 CSVにシートはありませんので当然シート名も有りません。シート名を付けても、CSVとして保存すると無くなります。 ExcelでCSVを開くと、Excelはシート名が無いので代わりにファイル名(この場合「変換後CSVファイル」)をシート名として表示しています。 保存するCSVファイル名を「変換.csv」にすれば、Excelで開いた時にシート名の箇所に「変換」と表示されます。

gonta_884
質問者

補足

ご回答ありがとうございます。 知識の無さを露呈する結果となりお恥ずかしい限りです。CSVの件理解いたしました。 あと、問題点のXPでコピペしたネタが消えるほうもできればご指導いただきたいのですが・・・ 構文は同じでパスが違うだけです。フォルダ&CSVのファイルは生成されるのでパスはきちんと 指定できている思います。よろしければご教授ください。よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう