[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.