[[20170501170408]] 『EXCEL2016のマクロで!』(タロウZ) ページの最後に飛ぶ

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

 

『EXCEL2016のマクロで!』(タロウZ)

 いままで、EXCEL2000を使用していましたが、
 最近EXCEL2016になったのですが下記のマクロが動きません。

    For Each WorkBB In Workbooks
      If WorkBB.Name = ブックNAME Then
        MyFlagA = True: Exit For
      End If
    Next

 ブックNAME には、ファイル名が入っています。がファイルを開いた状態でも
 MyFlagAがTRUEになりません。仕様が変わったのでしょうか?

 以上よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


拡張子はどうなってますか?
(カリーニン) 2017/05/01(月) 17:14

 ブックNAME も、xlsmです。

 お願いします
(タロウZ) 2017/05/01(月) 18:08

当方の環境(エクセル2007)て試した限りでは拡張子を含めたブック名を取得出来ました。
念のため、ですが、大文字小文字、半角全角含めて全く同じかをご確認ください。
(カリーニン) 2017/05/01(月) 18:19

 Msgbox等でWorkBB.Nameを確認してみてはどうか。
(ねむねむ) 2017/05/01(月) 19:17

 いろいろありがとうございます。
 明日、会社でもう一度上記等やってみます。
 ありがとうございました。
(タロウZ) 2017/05/01(月) 19:54

 > ブックNAME も、xlsmです。

 xlsxじゃ無いんですか?
 操作対象のブックもマクロブックなんですか?

(sy) 2017/05/02(火) 08:04


  For Each WorkBB In Workbooks
   MsgBox WorkBB.Name
      If WorkBB.Name = ブックNAME Then
        MyFlagA = True: Exit For
      End If
    Next

 で、上記の WorkBB.Name
      が、『PERSONAL.XLSB』と表示されました。
 おかしいのですが・・・

(タロウZ) 2017/05/02(火) 10:09


> が、『PERSONAL.XLSB』と表示されました。
> おかしいのですが・・・

何が表示されることを期待しましたか?

(マナ) 2017/05/02(火) 10:19


特定のブックが開いているか否かを判定したいのでしょうか?
そうでしたら、ループしないで直接判定してはいかがでしょう?
(カリーニン) 2017/05/02(火) 10:27

 直接できるのであれば、おしえてほしいのですが。
 よろしくお願いします。

 いままでの使い方は悪いのでしょうか?
(タロウZ) 2017/05/02(火) 10:33

 書かれているVBAはその時開かれているブックすべてを対象にしているが『PERSONAL.XLSB』一つしか出てこないのだろうか?

 SDI化で違いが出ているのだろうか?
(ねむねむ) 2017/05/02(火) 10:41

 ブックNAME は『PERSONAL.XLSB』と違うファイルです。
(タロウZ) 2017/05/02(火) 11:54

直接判定する方法の参考過去ログです。

[[20141201004322]] 『Workbooks.Openについて』(toshi)
(カリーニン) 2017/05/02(火) 12:03


> MyFlagAがTRUEになりません。仕様が変わったのでしょうか?

2016のPCで確認してきました。
今のコードで問題なく、TRUEになりましたよ。

(マナ) 2017/05/02(火) 12:44


 いろいろありがとうございまます。 

    機械リスト.xlsxを開いて

 家のパソコンですが、2013エクセル、
 WIN10で下記実行してみました。

 MyFlagAがTRUEになりました、

  ブックNAME = "機械リスト.xlsx"
   For Each WorkBB In Workbooks
         If WorkBB.Name = ブックNAME Then
        MyFlagA = True: Exit For
      End If
    Next

 やっぱり、会社のエクセルになにかあるのようです。
  連休明けに再度チェックしてみます。
ありがとうございました。

(タロウZ) 2017/05/02(火) 21:19


 >ブックNAME = "機械リスト.xlsx"
 会社のコードも同じなんですか?

 (sy) 2017/05/02(火) 08:04でお聞きしてますけど、
 (タロウZ) 2017/05/01(月) 18:08で、
 >ブックNAME も、xlsmです。
 と発言されてますけど、ブックNAME = "機械リスト.xlsm" になってるせいで一致しないと言う事は無いですか?

 後こんな方法でループしなくても取得出来ます。

 Sub test()
    Dim wb As Workbook

    On Error Resume Next
    Set wb = Workbooks("機械リスト.xlsx")
    On Error GoTo 0

    If Not wb Is Nothing Then
        MsgBox "開いてます"
    Else
        MsgBox "開いてません"
    End If

 End Sub

(sy) 2017/05/02(火) 21:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.