|
▼かもめ さん:
こんにちは。
>Workbook_Openのマクロで
>ファイル名に「月分」という2文字が入っていたら、
>Workbook_Openのマクロを実行しない。
>という命令は可能でしょうか。
Book名に「月分」という文字列が含まれるかを調べるには
InStr関数とか、
Like演算子
で可能です。
たとえば、
開いたWorkbookの名前を Like演算子で調べるなら、
If ActiveWorkbook.Name Like "*月名*" Then
といった風です。
>※こちらで月が替わっていたらフォルダを作成して
> コピーを保存し、中身のデータを消すというマクロを質問し、
> おかげさまで作ることが出来たのですが、
いまどんなふうにコードを書いてますか?
下記は、存在しない階層フォルダを一気に作成するAPI と
元のBookは無くさないで、そのBookのCopyを
名前をつけて作成するサンプルです。
'---------------------- 標準モジュール
Declare Function SHCreateDirectoryExA Lib "shell32" ( _
ByVal hwnd As Long, _
ByVal pszPath As String, _
ByVal psa As Long) As Long
Sub BackUpファイルの保存()
Dim myBackupPath As String
Dim myBackupName As String
Dim ok As Long
'▼ファイル名に "月分" という文字列があるか調べる
' あったら 以下のマクロは実行しない
If InStr(ActiveWorkbook.Name, "月分") Then Exit Sub
'▼Backup Folderの一気作成
myBackupPath = "D:\(Data)\報告関連\2010\3月度\"
myBackupName = "報告書(3月分).xls"
ok = SHCreateDirectoryExA(0&, myBackupPath, 0&)
'▼BookのBackUp保存 (対象Bookそのものはそのまま残す)
ActiveWorkbook.SaveCopyAs myBackupPath & myBackupName
'▼Bookの内容Clear
ActiveSheet.UsedRange.ClearContents
End Sub
参考URL (存在しないパスのフォルダを一発で作成する)
h t tp://officetanaka.net/other/extra/tips07.htm
|
|