[[20141201004322]] 『Workbooks.Openについて』(toshi) ページの最後に飛ぶ

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

 

『Workbooks.Openについて』(toshi)

ユーザーフォームのコマンドボタンに現在以下のコードにて別のBookを
「単価表」開いていますが、コマンドボタンを押すごとに以下の操作をす
る方法を教授お願いします。
1.「単価表」がオープンしていなければ、「単価表」をオープン
2.すでにオープン済なら「単価表」をアクティブにする。
以上の操作を可能にするには、以下どのような手直しが必要ですか?
よろしくお願いします。

Private Sub CommandButton5_Click()

   Workbooks.Open(Filename:= _
        "D:\Office\Database\単価表.xlsm"). _
        RunAutoMacros Which:=xlAutoOpen
End Sub

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 こういう感じでいけると思います。

Option Explicit

Sub test()

 Dim wbpath As String
 Dim wbmei As String
  wbpath = "D:\Office\Database\単価表.xlsm"
  wbmei = Dir(wbpath)
  If wbchk(wbmei) = False Then
     'ブックを開く処理
     Workbooks.Open (wbpath)
  Else
     Workbooks(wbmei).Activate
  End If
End Sub

Function wbchk(ByVal wbname As String) As Boolean

 Dim wb As Workbook
  wbchk = False
  For Each wb In Workbooks
   If wb.Name = wbname Then
      wbchk = True
      Exit For
   End If
  Next wb
End Function
(カリーニン) 2014/12/01(月) 01:25

↓もご参照ください。

http://hanatyan.sakura.ne.jp/vbhlp/excel03.htm
(カリーニン) 2014/12/01(月) 01:37


カリーニンさん
速攻ありがとうございました。<(_ _)>
希望通りです。すごい(^^)/
また、サイトの紹介ありがとうございます。
色々勉強になります。

(toshi) 2014/12/01(月) 02:16


 書き忘れましたが、私のコードは別インスタンスで開かれたブックは補足できません。
 リンク先のVB用のコードは別インスタンスのブックに対しても有効です。

 リンク先の
 >指定のファイルが使用中かどうかを調べる        (015)
 のコードはブックの名前を変えることでブックが開いているか否かを判定しています。
 ブックが開いていたら名前を変えようとしたらエラーになりま すのでそれで判定でき
 ます。

 また、このコードは元々付いていた名前に変えますので、もしブックが開いてなくて
 マクロによって名前が変えられたとしても問題ありません。
(カリーニン) 2014/12/01(月) 08:51

コメント返信:

[ 一覧(最新更新順) ]


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