Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


17245 / 76732 ←次へ | 前へ→

【64944】Re:ファイル名に特定の文字がある場合は実行しない
発言  kanabun  - 10/3/28(日) 23:36 -

引用なし
パスワード
   ▼かもめ さん:
こんにちは。

>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
2 hits

【64943】ファイル名に特定の文字がある場合は実行しない かもめ 10/3/28(日) 21:22 質問
【64944】Re:ファイル名に特定の文字がある場合は実... kanabun 10/3/28(日) 23:36 発言
【64949】Re:ファイル名に特定の文字がある場合は実... かもめ 10/3/29(月) 12:21 お礼
【64945】Re:ファイル名に特定の文字がある場合は実... kanabun 10/3/28(日) 23:42 発言

17245 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free