個人用マクロブックの有無
エクセルVBAで現在ユーザーが使っているパソコンに個人用マクロブックが存在するかどうかを取得する方法を考えました。
まず、開いているBOOKを総当りして、エクセル2003までなら PERSONAL.XLS、2007からは"PERSONAL.XLSM がひらいているかどうかを調べる方法。
Sub test1()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name Like "PERSONAL.XLS*" Then
MsgBox "個人用マクロブックがあります。"
Exit Sub
End If
Next
MsgBox "個人用マクロブックはありません。"
End Sub
最初から個人用マクロブックがあるものとして変数に入れ、エラーになったら無いと判断する方法。
Sub test2()
Dim wb As Workbook
Dim v As String
v = IIf(Val(Application.Version) > 11, "PERSONAL.XLSM", "PERSONAL.XLS")
On Error Resume Next
Set wb = Workbooks(v)
On Error GoTo 0
MsgBox "個人用マクロブックが" & IIf(wb Is Nothing, "ありません。", "あります。")
End Sub
でも、自分の端末はまだ2000で、しかも個人用マクロブックがあるので、ちゃんと判定できているのかどうか自信がありません。
これで正しいのでしょうか?
また、test1とtest2ではどちらをつかえばいいのでしょうか?
あるいは、もっと簡単なやりかたはないのでしょうか?
お礼
こう言うことです! 有難うございました。