現在の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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) VBAの参照先のファイル名をセルに書いて代入したい 2 2022/04/04 13:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
エクセルのxls形式からxlsx形式...
-
VBAでワークブックの名前を変数...
-
ACCESS VBAでファイルを開くダ...
-
エクセルのシートの数を数えた...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロ 異なるファイ...
-
エクセルファイルを開く時、関...
-
ファイルを開かずにマクロを実行
-
ファイルの保存場所を変えたら...
-
vba初心者です。 質問です。 毎...
-
VBA EXCELファイル選択⇒指定セ...
-
Excel VBA でファイルが開かれ...
-
エクセル 複数ファイルの一括...
-
Accessのaccdbファイルを起動で...
-
VBA 新規にエクセルを開き既存...
-
VBAでフォルダ内の全てのcsv...
-
ACCESSのマクロを自動で実行さ...
-
【Excel VBA】ファイル名が一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
VBAでワークブックの名前を変数...
-
エクセル 複数ファイルの一括...
-
フォルダ内のexcelファイルを順...
-
エクセルのxls形式からxlsx形式...
-
【Excel VBA】ファイル名が一...
-
エクセル(マクロ)のファイル...
-
vlookup関数の引数を変数で指定...
-
ファイルを開かずにマクロを実行
-
エクセルのシートの数を数えた...
-
Accessのaccdbファイルを起動で...
-
エクセルマクロ 異なるファイ...
-
vba初心者です。 質問です。 毎...
-
ファイルの保存場所を変えたら...
-
Excel VBA でファイルが開かれ...
-
accessフォルダを移動したらフ...
-
リンク切れチェックを行うマクロ
-
フォルダ内のブック全部にパス...
-
ACCESS VBAでファイルを開くダ...
おすすめ情報
kamerabeginner様
恐縮ですが、更にご教示をいただけないっでしょうか。
ご提案のマクロをExcelにコピペして、xlsm形式で保存して、最初うまく行きましたが、C4をC5の値に更新する処理を挿入して何回か試しているうちに、「決算書2023.xlsm」ファイル自体が作成されなくなってしまいましたが、もし、原因がお分かりになりましたら、ご教示いただけますでしょうか。
なお、完了メッセージは、写真のように表示されて。正常終了しております。
kantansi様
ご教示いただきましたコードをコピペにより、Excelに実装しましたが、No.1の方への補足と同じく、「新年度の繰越が完了しました」のメッセージがでますが、ファイルができていません。ファイルパスは、パスのコピーで取得してありますので、間違いないと思いますが、原因はどのようなことが考えられますでしょうか。よろしくお願いいたします。