
現在のExcelのセルにある数字(例;C5 「2023」)を拾って、Excelファイル名に付与して、新しいファイルとして、保存するマクロを教えてください。
1. 現在のExcelファイル、「決算書2022」があります。
2. このうち、写真のように、セルC5にある「2023」の数字を拾って、「2022」と入れ替えて、新しいファイル「決算書2023」を作成して保存をします。
3. 旧ファイル「決算書2022」と新ファイル「決算書2023」がともに、フォルダーに残ります。
4. 上記No.2の処理の前に、条件式で、もし、C4=C5ならば、「年度が同じなので、繰越できませんでした」とのメッセージを表示して、マクロは終了します。
5. もし、C4=C5でなければ、上記No.2の処理をして、「知年度の繰越が完了しました」と表示して。マクロは終了します。
なお、セルC5:「2023」は、C5=YEAR(TODAY()) により、現在の年度を表示しています。
よろしくお願いいたします。

No.1ベストアンサー
- 回答日時:
Sub CreateNewFile()
' 現在のExcelファイル名を取得
Dim CurrentFileName As String
CurrentFileName = ActiveWorkbook.Name
' セルC4とC5を比較し、年度が同じ場合はメッセージを表示して終了
If Range("C4").Value = Range("C5").Value Then
MsgBox "年度が同じなので、繰越できませんでした"
Exit Sub
End If
' 新しいファイル名を作成
Dim NewFileName As String
NewFileName = Left(CurrentFileName, Len(CurrentFileName) - 8) & Range("C5").Value & ".xlsx"
' 新しいファイルを作成して保存
ActiveWorkbook.SaveCopyAs NewFileName
' メッセージを表示して終了
MsgBox "新年度の繰越が完了しました"
End Sub
No.2
- 回答日時:
以下は、要件に基づいたExcelマクロの例です。
実行前に必要に応じてファイルパスなどを適宜変更してください。VBネット
Copy code
Sub SaveNewFile()
Dim currYear As String, newYear As String, currFileName As String, newFileName As String, folderPath As String
currYear = Range("C4").Value
newYear = Range("C5").Value
currFileName = ActiveWorkbook.Name
folderPath = "C:\Users\UserName\Documents\Excel Files\" ' フォルダーパスを適宜変更
If currYear = newYear Then
MsgBox "年度が同じため、繰越できませんでした。", vbInformation, "処理終了"
Exit Sub
Else
newFileName = Left(currFileName, Len(currFileName) - 8) & newYear & ".xlsx"
ActiveWorkbook.SaveCopyAs folderPath & newFileName
MsgBox "新年度の繰越が完了しました。", vbInformation, "処理終了"
End If
End Sub
注意事項:
ファイルの保存場所 (folderPath) は必ず変更してください。
フォルダーパスには、フォルダー名の間にバックスラッシュ () を使用してください。
実行前に、必ず旧ファイルを保存してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelマクロの作成方法・コーディングをご教授ください。
Excel(エクセル)
-
Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ
Excel(エクセル)
-
メモ帳からエクセルにセル区切りで表示させたいんです
Excel(エクセル)
-
-
4
Excelの空文字判定について
Excel(エクセル)
-
5
エクセルのソート方法について
Excel(エクセル)
-
6
1967年5月26日 - 2023年2月27日は、何年何か月と何日でしょうか?
Excel(エクセル)
-
7
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
Visual Basic(VBA)
-
8
エクセルで月をアルファベットに変換したい。
Excel(エクセル)
-
9
excel2013 色付きセルの値合計
Excel(エクセル)
-
10
VBAで、シート間の転記するコードを教えてください。
Excel(エクセル)
-
11
エクセル マクロ 行や列を削除しても 常にC3セルに背景色を維持
Excel(エクセル)
-
12
Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに
Excel(エクセル)
-
13
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
14
特定の条件で計算式を組みたいのですが、教えて頂けますでしょうか?
Excel(エクセル)
-
15
Excel 値を返す数式についてです
Excel(エクセル)
-
16
エクセルで所得税計算をする際に関数を利用したいと思っています。
Excel(エクセル)
-
17
Excel教えてください。 下記のことが出来るのは、マクロですか?条件付き書式でしょうか、、?知恵を
Excel(エクセル)
-
18
該当日が期間内に当てはまる場合、開始日と終了日をExcel関数を用いて入力させたい
Excel(エクセル)
-
19
エクセルの関数で教えてください
Excel(エクセル)
-
20
マクロ作成初心者です。CSVファイルの日付データについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
フォルダ内のexcelファイルを順...
-
5
【Excel VBA】ファイル名が一...
-
6
エクセルのxls形式からxlsx形式...
-
7
エクセルマクロで不特定なファ...
-
8
VBAでワークブックの名前を変数...
-
9
accessフォルダを移動したらフ...
-
10
エクセル(マクロ)のファイル...
-
11
vlookup関数の引数を変数で指定...
-
12
マクロの付いたExcelが開けません
-
13
エクセルデータが突然破損します。
-
14
フォルダ内のブック全部にパス...
-
15
セルに値が入ったらマクロを実...
-
16
【マクロ】エラーが発生⇒実行時...
-
17
Excel VBA でファイルが開かれ...
-
18
エクセル 複数ファイルの一括...
-
19
エクセルのシートの数を数えた...
-
20
Excelファイルを開いた時に、特...
おすすめ情報
公式facebook
公式twitter
kamerabeginner様
恐縮ですが、更にご教示をいただけないっでしょうか。
ご提案のマクロをExcelにコピペして、xlsm形式で保存して、最初うまく行きましたが、C4をC5の値に更新する処理を挿入して何回か試しているうちに、「決算書2023.xlsm」ファイル自体が作成されなくなってしまいましたが、もし、原因がお分かりになりましたら、ご教示いただけますでしょうか。
なお、完了メッセージは、写真のように表示されて。正常終了しております。
kantansi様
ご教示いただきましたコードをコピペにより、Excelに実装しましたが、No.1の方への補足と同じく、「新年度の繰越が完了しました」のメッセージがでますが、ファイルができていません。ファイルパスは、パスのコピーで取得してありますので、間違いないと思いますが、原因はどのようなことが考えられますでしょうか。よろしくお願いいたします。