
セル入力された日付データから年月のみを取り出してファイル名につけたい、のですが・・・
下記のようなイメージです。
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(エクセル)
-
マクロボタンを押すと、ファイル名を“日付(年月日)_文字.xlsx”にして指定ファイルに保存したいの
Excel(エクセル)
-
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
-
4
エクセルのシート名変更で重複した時のvbaの処理
Visual Basic(VBA)
-
5
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
6
フォームテキストボックスの表示設定
Excel(エクセル)
-
7
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
8
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
9
EXCEL 年月表示をするVBAを教えてください。
Excel(エクセル)
-
10
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
11
VBA 入力月で該当シートを選択する方法
Visual Basic(VBA)
-
12
VBAでのフィルタについて(空白行の削除)
Excel(エクセル)
-
13
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
14
エクセルのマクロで複数シートを両面印刷するには?
Excel(エクセル)
-
15
エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
すでに開いているブックのマク...
-
【ExcelVBA】指定の書式で、マ...
-
エクセルVBA Workbook変数に変...
-
EXCELマクロでxlsとxlsxを開く方法
-
コマンドボタンでマクロを起動...
-
エクセル2007で、Application.R...
-
エクセルのマクロについて教え...
-
excelマクロ、任意セルの値で名...
-
マクロでログ抽出し、日付ごと...
-
複数のデータ系列の線の太さを...
-
VBAを一度起動するとずっと出て...
-
エクセルでツールバーに「縮小...
-
昨日まで動いていたエクセルの...
-
Excelマクロ ファイル名が変わ...
-
外部データを取り込むマクロ
-
マクロを消すマクロは不可能?
-
VBA[Private Sub]のコードをシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
【ExcelVBA】指定の書式で、マ...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelマクロ、任意セルの値で名...
-
【Excel VBA】ブックを複数開い...
-
すでに開いているブックのマク...
-
フォルダ内の全てのBookに同じ...
-
VBA セル入力された日付データ...
-
VBAでEXCELのワークシートを削...
-
VBA、Excelのworkbook.open に...
-
Excel VBAを後ろで動かす方法
-
[Excel VBA] フォルダ内の複数...
-
EXCEL VBA起動時の処理
-
excelでハイパーリンク 別ブッ...
-
エクセルVBAでブックを開くと処...
-
他のBookのユーザー定義関数を使う
おすすめ情報