[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ブックが開かれているかチェック』(四季)
For Each wb In Workbooks
If bk.Name Like "*管理表*" Then flag = True Exit For End If Next wb If flag = True Then MsgBox "開いています" Else MsgBox "開いていません" End If
ファイル名に"管理表"を含むブックを開いているか確認しているんですが、
"管理表"の後ろに2桁の数値を付けるルールとなりました。
2桁の数値とは日付のことなんですが、"*管理表26"と指定していまうとその日付のファイルしか開かなくなってしまうので・・・
必ず2桁の数値が付く場合、どのように書き換えたら良いでしょうか?ご教示願いいます。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
単純に管理表ブックの後ろに文字が二つ以上あるというチェックでいいのだろうか? それとも後ろ二文字が数字であるチェックが必要なのだろうか?
もっとも"*管理表*"は管理表という文字が含まれるということなのでそれでも合致するといえば合致するのだが。 (ねむねむ) 2016/08/26(金) 17:05
ファイル名に"管理表"とつくファイルは複数あるんですが、管理表の後ろに2桁の数値を付けることによって、"管理表##"(←伝わりますでしょうか・・・)となるファイルはこのファイルのみとなります。
なので、確実にこのファイルが開いているかどうかを確認したいのです。
なので、に文字が数字であるチェックはなくても良いと思います。
If bk.Name Like "*管理表*" And bk.Name Like "*##" Then
このように書いてみたのですが、##の後ろに拡張子を付けていないから?なのか、開いているのに開いていませんとなってしまいました。
##の後ろにも*を付ける必要があるんでしょうか?
しかし、ファイル名に"管理表"も数値も含むファイルは複数あるので、"管理表##"みたいな形で書きたいんですが、如何したらよいのでしょうか・・・。
(四季) 2016/08/26(金) 17:13
必ず二文字で有る場合は "*管理表??" としてくれ。
これで管理表の後ろになにか二文字があるものと合致する。
追記 おっとブック名だったか。
拡張子がわかっているのであれば "*管理表??.xlsm" のように拡張子を指定。
あるいは "*管理表??.*" ではどうか。 (ねむねむ) 2016/08/26(金) 17:16
早速試してみました!拡張子はどうしようと考えていたんですが、そこも追記して下さりもう感激です。
とても助かりました。本当にありがとうございました!
(四季) 2016/08/26(金) 17:25
If bk.Name Like "*管理表##*" Then
でいいんじゃない。www
(とおりすがり) 2016/08/26(金) 18:53
>If bk.Name Like "*管理表##*" Then
↓じゃね?
If wb.Name Like "*管理表##*" Then (カエムワセト) 2016/08/26(金) 19:07
おっと、まさか最初に提示のコードが間違っていたとは、見逃した、無念。www
(とおりすがり) 2016/08/26(金) 20:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.