|
▼りん さん:
今晩は。
実はこのマクロを見させていただいていて、このようなマクロが欲しいと
思っていました。
早速実行させていただきましたが・・・
wb.Worksheets(wsn).Activate
のところでエラーが出ます。wsnのところにシート名が入ってきません。
""の状態で、エラーが出ます。
色々とテストしてみましたが、良い案が出てきません。
(勿論シート名とオプションボタン名は同じ名前にしていますが・・・)
何か良い方法がありましたら、よろしくお願いします。
>
>Private Sub CommandButton1_Click()
> Dim obj1 As OLEObject, wsn As String, wb As Workbook
> For Each obj1 In ActiveSheet.OLEObjects
> If TypeName(obj1.Object) = "OptionButton" Then
> With obj1.Object
> If .Value = True Then
> wsn = .Caption: Exit For
> End If
> End With
>
> End If
> Next
> '既に開かれているかチェック
> For Each wb In Application.Workbooks
> If wb.Name = "日程シート.xls" Then
> wb.Activate
> Exit For
> End If
> Next
> If wb Is Nothing Then
> 'MENUブックと同じフォルダにあるとして
> Set wb = Workbooks.Open(ThisWorkbook.Path & "\日程シート.xls")
> End If
> '対応するシート名が無いとエラーになるので注意
> wb.Worksheets(wsn).Activate
> '
> Set wb = Nothing: Set obj1 = Nothing
>End Sub
>
>こんな感じです。
> フォームのツールバーから貼られたものだとどういう挙動になるのかわかりませんが。
> オプションボタンのどれがTrueになっているのかを格納するセルまたはラベルやテキストボックス(非表示でよい)を作っておくと、チェックの部分を省くことができるので楽になりますよ。
|
|