|
ハッチ さん、こんばんわ。
>すみませんが、マクロをどう組んだらいいのかがわからないのでどなたか教えてください。
>
>オプションボタンでA,B,C,D,Eの5人の担当者のボタンを作りました。(ワークシートに直接作ってあります。)
>もしAを選んで、"表示する"ボタンを押すとAの日程シートに移動するというのを作りたいと考えています。
>ファイルは"MENU.xls"と"日程シート.xls"2つあります。
オプションボタンがコントロールツールボックスから組み込まれたものだとして。
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になっているのかを格納するセルまたはラベルやテキストボックス(非表示でよい)を作っておくと、チェックの部分を省くことができるので楽になりますよ。
|
|