[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『自動的に名前をつける方法を教えてください』(しゅう)
ボタンを押下すると自動的にファイル名がつけられてデスクトップに保存するようにしたいです。
どのようなコードになるか教えていただけるでしょうか。
エクセル2010です
< 使用 Excel:Excel2010、使用 OS:Windows7 >
ファイル名は何から求めるのだろうか? (ねむねむ) 2018/09/21(金) 10:55
Private Sub CommandButton1_Click() Dim cPath As String Dim cFile As String
cPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") cFile = Format(Now(), "YYYYMMDDHHNNSS") & ".xlsm" SaveAs cPath & "\" & cFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub (???) 2018/09/21(金) 11:04
なげやりな回答になるけど、特にこだわりがないなら
Format(Now, "yyyymmdd_HHMMSS") っていうファイル名にして保存したらいいんじゃないですか?
ミリ秒単位まで必要ですかね?
(もこな2) 2018/09/21(金) 11:06
それぞれのセル入力を抜き出して名前にしたいです。
下記ではダメでした。
ご教示よろしくお願い致します。
FName = ActiveWorkbook.FullName
A = Range("N3").Value B = Range("A3").Value C = Range("E4").Value D = Range("G4").Value E = Range("I4").Value ActiveWorkbook.SaveAs Filename:=【" & A & "】" & B & "日記 " & C & " 年 " & D & " 月 " & E & " 日 " & ".xlsm"
(しゅう) 2018/09/21(金) 14:23
頭の"がないが? ActiveWorkbook.SaveAs Filename:="【" & A & "】" & B & "日記 " & C & " 年 " & D & " 月 " & E & " 日 .xlsm" (ねむねむ) 2018/09/21(金) 14:29
あと拡張子をxlsmで保存するのであれば???さんの回答にあるようにFileFormatの指定が必要。 (ねむねむ) 2018/09/21(金) 14:35
Sub ネーム()
FName = ActiveWorkbook.FullName
A = Range("B7").Value B = Range("C18").Value
ActiveWorkbook.SaveAs Filename:="【" & A & "】" & B & " .xlsm"
End Sub
(しゅう) 2018/09/21(金) 16:47
Sub ネーム()
FName = ActiveWorkbook.FullName
A = Range("B7").Value B = Range("C18").Value ActiveWorkbook.SaveAs Filename:="【" & A & "】" & B & ".xlsm"
cPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
End Sub
(しゅう) 2018/09/22(土) 20:56
>あと拡張子をxlsmで保存するのであれば???さんの回答にあるようにFileFormatの指定が必要。 >(ねむねむ) 2018/09/21(金) 14:35
ちゃんと読んでる???? それと、コード意味考えないで、単にあちこち移動させているだけじゃない?
(BJ) 2018/09/23(日) 03:01
>下記でデバックとなってしまいました。 >下記の通りしてみましたがディバックとなってしまいました。
↓
実行時エラーが発生してデバックするか確認のメッセージがでてきました。
ですよね。
また、
Sub ネーム() Dim fname, A, B
fname = ActiveWorkbook.FullName A = Range("B7").Value B = Range("C18").Value ActiveWorkbook.SaveAs Filename:="【" & A & "】" & B & ".xlsm" End Sub
みたいに、 Filenameにフルパスでなく、ファイル名だけ渡すのなら"カレントフォルダ"に保存するように動くと思うので実行時エラーにはならないように思います。
となると、B7やC18にファイル名として使用できない文字("/"など)が入力されているのでは?
(入力が"2018年9月23日"でも、Valueプロパティを参照した取得した場合、"2018/9/23"となることもあるから、それが原因なんじゃないのかなぁ・・・
↓を実行したらイミディエイトにどのように出力されますか?
Sub テスト() Dim A, B
A = Range("B7").Value B = Range("C18").Value Debug.Print "【" & A & "】" & B & ".xlsm" End Sub
このほか、提示のコードだと
fname = ActiveWorkbook.FullName
ここの意味がありませんが、何をしたいのでしょうか?
(たぶん、Filename:=fname & "【" & A & "】" & B & ".xlsm" としたかったのだと思いますが・・)
(もこな2) 2018/09/23(日) 14:22
Sub テスト()
Dim A, B
A = Range("B7").Value B = Range("C18").Value Debug.Print "【" & A & "】" & B & ".xlsm" End Sub
↑実行してもなにも起こりませんでした。
(しゅう) 2018/09/25(火) 22:27
(もこな2) 2018/09/26(水) 04:14
下記のように改めて組みました。
しかし、「Sub ネーム()」の部分が黄色くなり、
「ActiveWorkbook.SaveAs Filename:="C保存\S保存\報告書\"【" & A & "】" & ".xls"」部分が赤字になり、
起動しません。再びご教示よろしくお願い致します。
Sub ネーム()
FName = ActiveWorkbook.FullName
A = Range("B7").Value
ActiveWorkbook.SaveAs Filename:="C保存\S保存\報告書\"【" & A & "】" & ".xls"
End Sub
(しゅう) 2018/10/03(水) 10:36
"C保存\S保存\報告書\" という文字列 【 というVBAの命令(そんなものは無い!) " & A & " という文字列(あれ、Aって変数のはずでは?) 】 というVBAの命令(そんなものは無い!) " & " という文字列(& は、文字列連結の命令でしょう?) .xls という命令(文字列にしたいんですよね?) " (対になるダブルクォーテーションが無い!)
以下のようにしたかったのでは?
"C保存\S保存\報告書\【" & A & "】.xls"
これでもドライブ指定が無かったり、デスクトップと関係なくなっていたり、相変わらず拡張子と保存形式が意味不明だったりしますが、文字列の連結ミスくらいは、ご自分でデバッグしましょうね。(知識なんて不要な、単なる間違い探しです)
(???) 2018/10/03(水) 13:12
これなら動くでしょうけど、xlsなのに中身はマクロの付いていないxlsxだったりするので、正常に開けないブックになってしまうかと思いますよ。
(???) 2018/10/03(水) 13:18
もし解らないのであれば、イミディエイトはすっぱり忘れて、以下を試して
なんと表示されるのか正確に教えてください。
Sub 実験() MsgBox "B7 セルは「" & Range("B7").Value & "」" & vbCrLf & _ "C18セルは「" & Range("C18").Value & "」" End Sub
>〜部分が赤字になり、起動しません。
起動云々というより、記述自体が間違っている(構文エラー)とExcel君に怒られてますね。
(どのように間違っているかは、???さんが説明済み)
fname という変数については、私も指摘をしたかとおもいますが無反応なので
解っているのか(指摘が理解できているのか)よく解りません。
理解できていないのであれば、そう言ってもらわないと答えようがないです。
ちなみに、???さんが心配されている拡張子のところについて、正攻法かどうか解りませんが、
私なら拡張子は付けずにExcel君にお任せします。
(もこな2) 2018/10/03(水) 23:28
やり取りを拝見していると、"自動的に名前をつける"という部分も然ることながら、マクロでブックに名前をつけて保存する方法の咀嚼が出来ないのでは?とおもいます。
なので、マクロの記録を使って、"名前をつけて保存"するには、どのような命令をどのように記述すればよいのか調べてみてはどうでしょうか?
(もこな2) 2018/10/04(木) 08:48
Sub ネーム()
FName = ActiveWorkbook.FullName
A = Range("B7").Value
ActiveWorkbook.SaveAs Filename:="S\C\保存\K\報告書\【" & A & "】" & ".xls"
End Sub
毎度、大変お騒がせして申し訳ありません。
(しゅう) 2018/10/09(火) 12:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.