[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで新規ブックを作成し、名前にセルの内容を反映させる』(みかん)
VBAで元のブックからシートをコピーし、名前をつけて保存する際の、名前の付け方いについて質問です。
シートのA1セルに「2020/5/8」と入力し、ブック名を「【提出】2020/5/8」としたい時、どのようにコードを書けば良いのでしょうか。
以下のコードで、「【提出】」というブック名で保存はできました。
Sheets("詳細シート").Copy
ActiveWorkbook.SaveAs FileName:="/Users/Desktop/ 【提出】.xlsx"
宜しくお願い致します。
< 使用 Excel:Excel2019、使用 OS:unknown >
>ブック名を「【提出】2020/5/8」としたい時、どのようにコードを書けば良いのでしょうか。
1度適当なブックの名前を「【提出】2020/5/8」に変えてみると良いです。 (BJ) 2020/05/09(土) 23:56
>セルに入力されている日付を持ってこれる方法はないのか
持ってこれたとして、一度手動で 【提出】2020/5/8.xlsx で保存してみれば
別案 myStr = Format(Range("A1").Value, "yyyymmdd") Sheets("詳細シート").Copy ActiveWorkbook.SaveAs FileName:="C:/Users/Desktop/" & "【提出】" & myStr & ".xlsx"
(ピンク) 2020/05/10(日) 00:31
このトピックの質問のほうは、BJさんがコメントされているとおり、まずは手作業で実験してみるとよいです。
実験すればわかるとおり、「/」をファイル名に使うことができないので保存できません。(回避方法はピンクさんが示されているので省略)
また、複数のブックやシート(オブジェクトといいます)が関わってくる場合は、ちゃんと対象のオブジェクトを明確にしたほうがよいとおもいます。
Sub 実験() Dim MyPath As String Stop '←ブレークポイントの代わり
'▼デスクトップを取得 MyPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
'▼シートを(新規ブックに)コピー ThisWorkbook.Worksheets(1).Copy
'▼(シートをコピーして作成された新規ブックの)1番目のシートのA1セルの日付をつけてデスクトップに保存 With Workbooks(Workbooks.Count) .SaveAs _ Filename:=MyPath & Format(Worksheets(1).Range("A1").Value, "yyyy_mmdd"), _ FileFormat:=xlOpenXMLWorkbook, _ CreateBackup:=False End With
End Sub
(もこな2 ) 2020/05/10(日) 11:18
教えていただきありがとうございます。
こちらの方法で試してみます!
また、もこな2さんがおっしゃっているのは私とは別の方です。
(みかん) 2020/05/10(日) 12:42
とにかく、
>1度適当なブックの名前を「【提出】2020/5/8」に変えてみると良いです >一度手動で 【提出】2020/5/8.xlsx で保存してみれば
こういうのは試してみたのでしょうか? で、詳細等は理解できたのでしょうか? (BJ) 2020/05/10(日) 15:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.