![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
セル入力された日付データから年月のみを取り出してファイル名につけたい、のですが・・・
下記のようなイメージです。
A列 B列
1 日付 商品名
2 2009/9/1 みかん
3 2009/9/2 とまと
4 2009/9/15 きゅうり
という明細データがある場合、
このファイルのファイル名を明細行の1番上(A2セル)に日付の年月だけにして保存したいのですが、可能でしょうか。
(上の例だと200909.xlsになるようしたいのですが)
ちなみに今は↓こんなコードでコピーしたファイルに名前をつけようとしていますが、エラーになってしまいます・・・
Sheets(1).Copy
ファイル名 = "\" & Sheets(1).Range("B13").Value & ".xls"
ActiveWorkbook.Close SaveChanges:=True, _
Filename:=ThisWorkbook.Path & ファイル名
宜しくお願い致します!
No.4ベストアンサー
- 回答日時:
こんにちは
それぞれのデータは、面倒かもしれませんが、メソッドに直接入れないで、一旦、変数などに取ったほうがよいです。
'-------------------------------------------
Sub MacroTest1()
Dim fName As String
Dim fPath As String
'日付データを取る
fName = Worksheets("Sheet1").Range("A2").Value
If IsDate(fName) Then
fName = Format$(fName, "yyyyMM")
fPath = ThisWorkbook.Path & "\"
'すでに保存している場合は、保存できません。
If Dir(fPath & fName & ".xls") = "" Then
Worksheets("Sheet1").Copy
ActiveWorkbook.SaveAs fPath & fName & ".xls"
ActiveWorkbook.Close False
Else
MsgBox fName & ": 同名ファイルがすでにあります。", vbInformation
End If
Else
MsgBox "日付データがありません。", vbCritical
End If
End Sub
No.3
- 回答日時:
#2です
失礼、#2は間違いです
寝ぼけてました、すいません
ThisWorkbookは実行したマクロのあるBookなので
空白にはなりません(新規Bookにマクロを設定し、保存せずに実行した場合は別ですが)
お詫びに
エラーの原因ですがファイル名に"/"が含まれているためです
詳しい説明は割愛しますが"/"は"\"と同じ意味を持つためです
例として
Cドライブのtestフォルダに2009/10/10.xlsを保存しようとすると
c:\test\2009/10/10.xls
とはなりません
c:\test\2009\10\10.xls
と変換されるためフォルダが無いとエラーが出ます
お騒がせしました
No.2
- 回答日時:
こんな感じ?
Sub test()
Dim ファイル名 As String
ファイル名 = ThisWorkbook.Path & "\" & Format(Sheets(1).Range("A2").Value, "yyyymm") & ".xls"
Sheets(1).Copy
ActiveWorkbook.Close SaveChanges:=True, _
Filename:=ファイル名
End Sub
Sheetコピーすると新規Bookになる
新規Bookは一度保存しないとPathは空白になっている
そのため
>ActiveWorkbook.Close SaveChanges:=True, _
>Filename:=ThisWorkbook.Path & ファイル名
ThisWorkbook.Path の部分が空白になりエラーとなる
これを避けるため、Sheetコピーする前にPathを取得する必要がある
日付をyyyymmの形式にするには
Format(日付,"yyyymm")
を使用します
以上、参考まで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
-
4
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
5
エクセルVBAでFINDで年月のみを取得したいのですが。
Excel(エクセル)
-
6
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
7
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
8
マクロ実行後元に戻すことは
PowerPoint(パワーポイント)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
11
ファイル名を今日の日付、時刻で保存する
Visual Basic(VBA)
-
12
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
13
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
14
セルの値を使ってファイルを保存
Excel(エクセル)
-
15
EXCEL 年月表示をするVBAを教えてください。
Excel(エクセル)
-
16
【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい
Excel(エクセル)
-
17
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
18
特定のセルに数値が入っているシートのみ印刷する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
[Excel VBA] フォルダ内の複数...
-
EXCEL VBAアドイン:シートの右...
-
複数のデータ系列の線の太さを...
-
別のパソコンでエクセルのマク...
-
「ほかのアプリケーションを無...
-
マクロを消すマクロは不可能?
-
エクセル終了時の保存確認メッ...
-
ファイル名を今日の日付、時刻...
-
EXCELマクロコードを、それを含...
-
一太郎システムマクロファイル...
-
Excelの中でオートシェイ...
-
Adobe Reader を閉じる
-
openofficeのエラー
-
【VBA】複数ブックから特定のシ...
-
ピボットグラフの書式の固定に...
-
エクセルシートをまとめて印刷...
-
最初の1回のみにボタンクリッ...
-
EXCEL マクロ クリップボードク...
-
個人用マクロブックにマクロを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
他のBookのユーザー定義関数を使う
-
VBA、Excelのworkbook.open に...
-
すでに開いているブックのマク...
-
フォルダ内の全てのBookに同じ...
-
personal.xlsの削除方法
-
[Excel VBA] フォルダ内の複数...
-
excelマクロ、任意セルの値で名...
-
excelでハイパーリンク 別ブッ...
-
VBA セル入力された日付データ...
-
Excel マクロでファイル名を変...
-
EXCEL VBA起動時の処理
-
エクセルVBAでブックを開くと処...
おすすめ情報