• 締切済み

名前の取得のマクロ

マクロを使って、ファイルの保存をしようと考えています。 CSVファイルをコピーして、Excelファイルに貼り付けて、名前を付けて保存する。 という流れの処理を考えています。 そこで、CSVファイルの名前を取得して、その名前を Excelファイルの名前にしたいのですが、上手くいきません。 Dim filname As String Application.FindFile filname = ActiveWorkbook.Name Namezu = ActiveWorkbook.Name Cells.Select Selection.Copy Windows("000.xls").Activate Sheets("測定データ").Select ActiveSheet.Paste '名前を付けて保存   ActiveWorkbook.SaveAs Filename:= _ "C:\新しいフォルダ\filname.xls", FileFormat:=xlNormal

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

他の部分も含めて未検証ですが、変数の使い方の質問と判断しました。 多分こういう事をされたいのかなと、、 ActiveWorkbook.SaveAs Filename:= _ "C:\新しいフォルダ\" & filname & ".xls", FileFormat:=xlNormal

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

名前の取得なら Application.FindFileじゃなくて Fname = Application.GetOpenFilename _    (filefilter:="すべてのファイル(*.*),*.*", Title:="ファイルの指定") はいかがでしょう?

関連するQ&A

  • エクセル2000 VBA

    ウィンドウズ2000 エクセル2000です。 ブックの中のシートを一枚だけコピーして別のブックに名前を付けて保存したいと思っています。 「'コピーするシートを選ぶ Sheets("概要表").Select '全部選んでコピー Cells.Select Selection.Copy '新しいブックを選ぶ Workbooks.Add Cells.Select '新しいブックにコピーを貼り付ける。 ActiveSheet.Paste Application.CutCopyMode = False」 ここまでは順当に動いています。 質問は アクティブになった新しいブックを保存したいです。 一行から二行目にかけて設定しているファイルネームを、 メッセージボックスを表示させてそこに入力した文字列 をファイルネームとして(現在****)保存したいのですが。 ActiveWorkbook.SaveAs Filename:= _ "**********.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False どなたかよろしくお願いします。

  • ファイルの保存先を任意にしたい(マクロ)

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • エクセルVBAでファイルをCSV保存の仕方

    エクセルのシートをCSVファイルに保存するため以下のようなマクロを書きました。 Sub Macro1() Cells.Select Selection.Copy Workbooks.Add ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.SaveAs FileName:="C:\WINDOWS\デスクトップ\Book1.csv", FileFormat _ :=xlCSV, CreateBackup:=False ActiveWindow.Close ThisWorkbook.Activate End Sub 一応これで保存できるのですが、自動記録でやったためファイルの名前が出てしまいました。 この部分をわたし以外の誰でも任意の名前をつけ、任意のフォルダーに保存できるように書き換えたいのです。 どのように記述すれば良いかお教えください。お願いします。

  • マクロ シート別に名前をつけて保存したい

    1つのブックにシートが複数あり、それぞれシート毎に名前をつけて保存したいです。 質問を検索しましたら似たようなマクロを見つけたのですが、例えば1.2.3・・・というシートがあった場合、エクセル1、エクセル2、というような共通の言葉をつけて保存したい場合の方法を教えて下さい。 たぶんですが・・・下記のどこかにエクセルという言葉をいれるとできますでしょうか? Workbooks(2).SaveAs Filename:= _ SvPath & Workbooks(BookName).Sheets(SheetName).Name & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False よろしくお願い致します。

  • エクセル マクロの記述(フォルダーの移動、削除)

    現在開いているエクセルのファイルにマクロを記述し、 1 「処理済」というフォルダーに、開いているエクセルファイルを移動して、同じ名前でエクセルを保存する。 2 「CSV」というフォルダーに、開いているエクセルファイルをCSVファイルに変換して名前を「処理.csv」とし保存する。 3 現在開いているエクセルファイルは削除する。 以上の三つの処理をさせようと、以下のようにしましたが、1,2の処理は出来ましたが、3の開いているエクセルファイルが残ってしまいます。 以上三つの処理が一度に出来るマクロの記述を教えて下さい。 よろしくお願いします Sub マクロ() ActiveWorkbook.SaveAs Filename:="C:\処理済\" & ActiveWorkbook.Name ChDir"C:\CSV" ActiveWorkbook.SaveAs Filename:= "C:\CSV\処理.csv" _ , FileFormat:=xlCSV, CreateBackup:=False Application.DisplayAlerts = False If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close End If Application.DisplayAlerts = False End Sub

  • EXCEL VBA マクロでユーザーフォームをコピーする方法

    元のユーザーフォームが含まれたブックがありそれを、コピーし個人用に名前を入れそれに記入させようとしています しかし作ったマクロでは標準モジュールはコピーされユーザーフォームはコピーされません ユーザーフォームをコピーして標準モジュールはコピーしたくないのです 繰り返し処理をする良い方法もお願いします Windows("元.xls").Activate Sheets("報告書").Copy Windows("元.xls").Activate Sheets("名前").Range("C1:D1").Copy Windows("Book1").Activate Range("Q2:R2").Select’名前シートから個人名を入力 ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:="C:\Users\~~~~\" & "○○" & ".xls", ’個人名に変更 FileFormat _ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False Workbooks("○○.xls").Close SaveChanges:=False

  • ExcelVBAでテキスト保存

    ExcelVBAを使って、ワークシートをテキストファイルに保存しようとしています。 CSV形式で保存するときは、   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".csv", _     FileFormat:=xlCSV, CreateBackup:=False でtest.csvに保存できますが、 単純にテキストファイルとして保存したいときに   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".txt", _     FileFormat:=xlText, CreateBackup:=False としても、実行時に下記のエラーになってしまいます。   実行時エラー '1004'   アプリケーション定義またはオブジェクト定義のエラーです。 どうしたらよいのでしょうか? また、CSVで保存した時も開いているファイルがtest.csvに変わってしまいますが、できれば、開いているファイルは元のファイルのままでシートだけを保存するにはSaveAsメソッドではなく、他のメソッドを使うのでしょうか? (hogehoge.xlsのtestシートを保存してもhogehoge.xlsが開いたままにしたい) 以上、宜しくお願いします。

  • エクセル2010で2003形式でマクロ保存したい

    マクロ初心者ですので、よろしくお願いいたします。類似例が無いかと検索しましたが見つからないので質問いたします。 会社のパソコンがエクセル2003から2010に変更されました。しかし、XP環境でエクセル2003しか使えないソフトがあり、そのパソコンも残してあります。2010で作成したマクロブック(xlsm)が、2003でも使えるようファイル名を付けてエクセル2003(xls)で保存できるマクロを作成したのですが、うまくいきません。 2010で保存できた構文に、「m」を削除し、Excel8の構文を付加するのですが、構文「FileFormat:」がハイライトされ、コンパイルエラーと表示され、「名前付き引数がありません」となります。 ActiveWorkbook.SaveCopyAs Filename:=FPATH & "\" & book3 & ".xls", _ FileFormat:=xlExcel8  「ActiveWorkbook.SaveAs」では拡張子が合わないとなりますが、保存はできています。「ActiveWorkbook.SaveCopyAs」で名前付け保存したいのですが、上記のエラーとなります。 よろしくご回答をお願いいたします。

  • マクロ 保存の仕方

    ' 指定の場所に保存する ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\デスクトップ\A\B\" & Replace(Range("k2").Value, "/", "") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close 上記のようにマクロを組みましたが、同じ名前で1回保存すると2回目からエラーします。 2回目から保存名の後ろに(2)、3回目は(3)等を付けて保存したいのですが。

専門家に質問してみよう