• 締切済み

セルの値を使ってファイルを保存

1.現在以下の内容で"C8"セルの値を取得してファイルを保存しています。 Sub ファイル保存() C = Range("C8").Value ActiveWorkbook.SaveAs Filename:="C:\Users\moto\Desktop" & C & ".xls" End Sub 2.ファイル名保存時に"H1"の日付もプラスしたいです。 現在は"H1"セルには"2008/11/17"と記入されてますがこれを"20081117"と変更し、"20081117_A見積書"というファイル名で保存する。("C8"=A見積書)

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

c = Format(Range("H1").Value, "yyyymmdd") & "_" & Range("C8").Value でどうでしょうか。

garage503
質問者

お礼

ありがとうございました。早速試してみました。 私のやりたい事ができました。

  • jellya_a
  • ベストアンサー率35% (12/34)
回答No.1

フォーマットで日付を直して付け加えたらいいのでは ないでしょうか。 H=format(Range("H1"),"yyyymmdd") ActiveWorkbook.SaveAs Filename:="C:\Users\moto\Desktop"& H &"_" & C & ".xls"

garage503
質問者

お礼

ありがとうございました。早速試してみました。 私のやりたい事ができました。

関連するQ&A

  • マクロExcel2003日付を付けてファイルを保存

    Excel2003でマクロを利用して、日付を付けた形でファイルを保存するようにしたいです。 条件としては、 (1)ファイルをz:\に「【ここに日付を八桁で保存】File1.xls」とする 例えば、20111127File1.xls (2)上書きする場合も、確認をせずに強制的に保存 (3)保存が終わったら、強制的にExcel2003を終了する という具合に書きたいです。 マクロの保存でやってみてわかっている所まで書きました。 Sub SaveEnd() ActiveWorkbook.SaveAs Filename:="Z:\【????】file1.xls", FileFormat:=xlNormal   【上書き保存で、確認をしない】   【Excel2003の強制終了】 End Sub どのように調べれば良いかも含めて、ご指導をいただければ幸いです。

  • エクセルでセル値をファイル名にして保存しようと思っています。

    エクセルでセル値をファイル名にして保存しようと思っています。 エクセル2003では以下の方法でセル値を取得して保存しています。 'Cell値を取得 strName2 = Sheets("#######").Range("A1").Value strName3 = Sheets("*******").Range("B2").Value 'strName2の値が空の場合、現在のブック名を代入 If strName2 = "" Then strName = ThisWorkbook.Name 'セル値の結合 sName = strName3 + strName2 '名前を付けて保存] ダイアログ ボックスを表示 fName = Application.GetSaveAsFilename(InitialFileName:=sName, fileFilter:="Excel(*.xls), *.xls") 'ファイル名を取得したら保存 If fName <> False Then ActiveWorkbook.SaveAs fName 同様の操作を2007以降で「マクロを有効にして保存」を行いたいのですが、どの様にすればいいのでしょうか? (自動保存では以下の様になる状態の事です。) ActiveWorkbook.SaveAs Filename:="#:\*******.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 2007の時の「'名前を付けて保存] ダイアログ ボックスを表示」の方法が分かりません。 共通の命令文では出来でしょうから、最終的にはエクセルのバージョンを取得して、IFで分岐させようと思っています。 宜しくお願い致します。

  • エクセルマクロで抽出時間を4桁で返す

    下記の様に、開いたファイルを保存する際に別ファイルの更新日時をファイル名として使用したいのですが、2011/10/10 10:02 だとすると、時間の"0"の部分が抜けて20111010_12となってしまいます。必ず4桁表示にする書き方があればご教示下さい。よろしくお願いします。 Sub cngsave() Dim a As String a = FileDateTime("C:\001\ABC.xls") Workbooks.OpenText Filename:= _ "C:\001\VVV.xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\001\保存\" & Year(a) & Month(a) & Day(a) & "_" & Hour(a) & Minute(a) & ".xls" End Sub

  • Excelのマクロで、セル内の文字をファイル名にしたい

    ”プロト.xls”というExcelファイルの中に、以下の動作をするマクロを作成したいのです。 (1)”C:\顧客\顧客納期連絡.xls”というExcelファイルを開き、  それを”C:\顧客\A.csv”という名前のcsvファイルにする。 (2)”C:\顧客\A.csv”を”xxxxxxxxxxxxxxxxxx”(※注1)という名前にしてコピーする。 ※注1:”xxxxxxxxxxxxxxxxxx”の部分は、”プロト.xls”ファイルのSheet”マスター”のセルD9から取得させる。 そのセルは、 C:\顧客\ABCDEF0215.csv と記述しています。 (3)コピー後、”C:\顧客\A.csv”を削除する。 ------------------------------------------------------------------- Sub 顧客納期連絡() ' ' 顧客納期連絡 Macro ' マクロ記録日 : 2010/2/15 ユーザー名 : xxxxxxx ' ' ChDir "C:\顧客" Workbooks.Open Filename:="C:\顧客\顧客納期連絡.xls" ActiveWorkbook.SaveAs Filename:="C:\顧客\A.csv", FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save Dim fname1 As String Dim fname2 As String fname1 = "C:\顧客\A.csv" fname2 = Workbooks("プロト.xls"), Sheets("マスター"), Cells("D9") FileCopy fname1, fname2 Kill "C:\顧客\A.csv" End Sub ------------------------------------------------------------------- 上記のマクロを作成したのですが、FileCopyの行で、構文エラーか型に一致していない、 というエラーになりマクロ再生が停止します。 セルの内容をファイル名にしたいのですが、何か良い方法はございませんでしょうか? 私は超初心者なので、何卒宜しくお願い致します。

  • A1セル入力値をファイル名先頭に追加したい。

    マクロ初心者で色々な事例を組み合わせて次のマクロを 作成しました。 A.xlsを開いて一部加工したファイルをB.xlsで保存し さらに一部を消去しC.xlsで保存するマクロです。 今回、B.xlsおよびC.xlsの先頭にA.xlsのA1セルに入力 された6桁の数字を付加して保存したいのですが・・・。 例えばA1セルが123456の時は 123456B.xls 123456C.xls どなたか教えてください。 現在のマクロ Sub Macro2() Dim strFilePath As String Dim strFileName As String Dim flg As Boolean '◆保存するパスの設定 strFilePath = ThisWorkbook.Path & "\" '◆保存するファイル名の指定 strFileName = "B" On Error Resume Next Workbooks(strFileName).Activate ThisWorkbook.SaveAs strFilePath & strFileName '◆個人情報消去 Range("D42:E49").Select Selection.ClearContents Range("d1").Select strFileName = "C" ThisWorkbook.SaveAs strFilePath & strFileName Application.Quit End Sub

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

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 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  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • 新しく作成したBOOKを上書き保存

    いつも大変お世話になっております。 新規作成したBOOKを指定の場所に、指定の名前で保存しようとしています。 例)C:\ファイル名.xls 保存したいものの sFileName="C:\ファイル名.xls" WorkbookName="ファイル名.xls" ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる Workbooks(WorkbookName & "_" & sNowTime & ".xls").Close SaveChanges:=True 上記のように設定したところ、 既にファイルがある場合はウィンドウが表示されます。 その際、MsgBoxにフルパスで表示されてしまい、大変見づらく困っています。 また、新規作成したブックは必ず上書き保存で良いものになっています。 C:\ファイル名.xls というものが既にある場合は、 メッセージを出さず、上書き保存にしたいと思っています。 下記のように、既にブックがあるかも確認したのですが、 違い?が良く分からず、上手くいきませんでした。 '======================使わない上に、プログラムが間違っているためコメントアウトしてます。=========-- 'Dim buf As String ' buf = Dir(sFileName) 'ファイルの存在を調べる ' If buf <> "" Then ' '保存 ' ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる ' ' '=================ファイル作成完了 ' Else ' ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる ' Workbooks(WorkbookName & "_" & sNowTime & ".xls").Close SaveChanges:=True ' End If '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 質問内容がぐちゃぐちゃしてきたので、まとめさせて頂きます。 ●新規ブックを指定場所に、指定名で保存したい ●指定場所に指定名のブックがあった場合、メッセージを出さずに上書き保存したい です、よろしくお願いいたします。

  • EXCELのVBAでの保存方法

    EXCELで以下のように記述したところ、 「ファイルを置き換えますか」のメッセージの後に 「いいえ」か「キャンセル」を選択すると 「400」というエラーメッセージが表示されます。 「いいえ」か「キャンセル」を選択した場合は、 エラーメッセージを表示させずに、 特定のシートのセルA1にカーソルを移動させたいのですが、可能でしょうか? ご指導よろしくお願いします。 ________________________ FileA = Application.GetSaveAsFilename( _ InitialFilename:="C:\test.xls", _ fileFilter:="XLSファイル (*.xls), *.xls") ActiveWorkbook.SaveAs Filename:=FileA ________________________

  • Excelシート1シートのみを指定フォルダへ保存

    Excelのシート1のみを、本日の日付と名前の入ったセル(I7)を保存する時の名前にして指定したフォルダへ保存したいと思っています。 1、シートは本日の日付+I7セルに入っている値を名前にする。 2、フォルダはCではなくV:\○○\○○\○○\○○\○○\○○\○○に格納 3、シート1以外のシート2、シート3は保存せず閉じる 4、格納後○○に保存しました。と表示 試行錯誤し、下記のように記述してみたのですが、 Sub Macro1() 'Option Explicit Sub Sample() Dim xSheet As Worksheet Dim myFile As String Dim myName As String Set xSheet = ActiveSheet ThisWorkbook.Worksheets("シート名").Copy 'myName = ActiveWorkbook.Worksheets(1).Name 'myFile = ThisWorkbook.Path & "\" & myName & ".xls" myFile = ThisWorkbook.Path & "\" & xSheet.Range("I7").Value & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=myFile Application.DisplayAlerts = True ActiveWorkbook.Close End Sub 日付を指定して保存 Sub test()  Dim Filename As String  Filename = Format(Date, "yyyy年mm月dd日") & ".xls"  ActiveWorkbook.SaveAs "C:\My Documents\" & Filename End Sub 日付とI7セルの名前を合せてブックの名前としたい場合どうVBEで記述すればいいのかわからないので詳しい方がおられましたら、 よろしくお願いいたします。 あまり詳しくないので、そのままコピーできるか、○○の部分を指定フォルダ名に変えてください。等の注釈を付けていただけると助かります。

  • ワークブックに名前をつけて保存するマクロ

    教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\□□□□□.xls" この□□□□□の部分はインプットボックスを表示させたいのですが、 こういうマクロを組むことはできますか?

専門家に質問してみよう