'========================================================================================= ' 408 オプションボタンの選択結果を調べる '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) ' UserForm1にもコードがあり、標準モジュールのコードと連係して動作します '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Public 選択結果 As Integer Public タイトル As String Public スタイル As Long Public メッセージ As String Public 応答 As Variant '========================================================================================= Sub ユーザーフォームを表示する() '★★★ 選択結果 = 0 '初期化する UserForm1.Show End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを表示する ユーザーフォームを表示する '★★★ End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() Worksheets("Title").Select Range("P16").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation メッセージ = "オプションボタンを使ったユーザーフォームを表示します" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '----------------------------------------------------------------------------------------- '========================================================================================= ' ◆UserForm1のコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim 行 As Variant '★★★ Dim 月別 As String '★★★ Dim 課別 As String '★★★ '----------------------------------------------------------------------------------------- Private Sub オプションボタンの選択結果を調べる() '★★★ If UserForm1.OptionButton1.Value = True Then 行 = 9 '営業1課 課別 = "営業1課" 'サンプルマクロ用のコーディング ElseIf UserForm1.OptionButton2.Value = True Then 行 = 10 '営業2課 課別 = "営業2課" ElseIf UserForm1.OptionButton3.Value = True Then 行 = 11 '特販課 課別 = "特販課" ElseIf UserForm1.OptionButton4.Value = True Then 行 = 12 '内販課 課別 = "内販課" Else スタイル = 16 'vbCritical メッセージ = "どの課も選択されていません" 応答 = MsgBox(メッセージ, スタイル, タイトル) 選択結果 = 1 '何も選択されなかったしるし Exit Sub End If End Sub '----------------------------------------------------------------------------------------- Private Sub チェックボックスの選択結果を調べる() If UserForm1.CheckBox1.Value = True Then 'チェックボックス1がONなら 月別 = "4月" '変数「月別」に"4月"をセットする ElseIf UserForm1.CheckBox2.Value = True Then 月別 = "5月" ElseIf UserForm1.CheckBox3.Value = True Then 月別 = "6月" ElseIf UserForm1.CheckBox4.Value = True Then 月別 = "7月" ElseIf UserForm1.CheckBox5.Value = True Then 月別 = "8月" ElseIf UserForm1.CheckBox6.Value = True Then 月別 = "9月" ElseIf UserForm1.CheckBox7.Value = True Then 月別 = "10月" ElseIf UserForm1.CheckBox8.Value = True Then 月別 = "11月" ElseIf UserForm1.CheckBox9.Value = True Then 月別 = "12月" ElseIf UserForm1.CheckBox10.Value = True Then 月別 = "1月" ElseIf UserForm1.CheckBox11.Value = True Then 月別 = "2月" ElseIf UserForm1.CheckBox12.Value = True Then 月別 = "3月" Else スタイル = 16 'vbCritical メッセージ = "どの月も選択されていません" 応答 = MsgBox(メッセージ, スタイル, タイトル) 選択結果 = 1 '何も選択されなかったしるし Exit Sub End If Range("G7").Value = 月別 'G7セルに変数「月別」の値をセットして選択された月を表示する End Sub '----------------------------------------------------------------------------------------- Private Sub CommandButton1_Click() Application.CutCopyMode = False 'コピーモードを解除する オプションボタンの選択結果を調べる '★★★ チェックボックスの選択結果を調べる If 選択結果 = 0 Then '課と月が選択されていれば Range(Cells(行, 4), Cells(行, 7)).Copy '課を選択してコピー スタイル = 64 'vbInformation メッセージ = "選択された月と課により、" & Chr(13) & Chr(13) & _ "収支表の" & 行 & "行(" & 月別 & "の" & 課別 & ")を、コピーしました" 応答 = MsgBox(メッセージ, スタイル, タイトル) End If Unload Me 'ユーザーフォームを消す End Sub '=========================================================================================