[[20160826165147]] 『ブックが開かれているかチェック』(四季) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ブックが開かれているかチェック』(四季)

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.