販売管理ソフトを作る - ボタンを動的に生成する

ボタンを動的に生成する



00015 Public Sub Main()
00016 Dim objForm As clsFormMain
00017 Set objForm = New clsFormMain
00018 Set objForm.Form = frmMain
00019
00020 With frmMain
00021 .Caption = "見積入力"
00022 .Font.Name = FONT_NAME
00023 .Font.Size = FONT_SIZE
00024 .Height = 480 '適当に調整する
00025 .Width = 640 '適当に調整する
00026 End With
00027
00028 Dim iTop As Integer: iTop = MARGIN + MARGIN
00029
00030 'ヘッダ部 初期化
00031 Call CreateHeader(objForm, iTop)
00032
00033 '明細部 初期化
00034 Call CreateDetail(objForm, iTop)
00035
00036 'フッタ部 初期化
00037 Call CreateFooter(objForm, iTop)
00038
00039 'ボタン部 初期化
00040 Call CreateButton(objForm, iTop)
00041
00042 frmMain.Height = objForm.cmdExit.Top + objForm.cmdExit.Height + MARGIN + 23 '23 は 微調整
00043
00044 objForm.Show
00045 End Sub

00427 'ボタン部 初期化
00428 Private Sub CreateButton(objForm As clsFormMain, ByRef iTop As Integer)
00429 Const BUTTON_WIDTH As Integer = 66 '適当に調整する
00430 Const BUTTON_HEIGHT As Integer = 21 '適当に調整する
00431
00432 Dim iLeft As Integer: iLeft = MARGIN
00433 Dim btnDummy As MSForms.CommandButton
00434
00435 Dim i As Integer
00436 For i = 1 To 6
00437 Set btnDummy = frmMain.Controls.Add("Forms.CommandButton.1")
00438 With btnDummy
00439 .Width = BUTTON_WIDTH
00440 .Height = BUTTON_HEIGHT
00441 .Left = iLeft
00442 .Top = iTop
00443
00444 Select Case i
00445 Case 1: .Caption = "新規"
00446 Case 2: .Caption = "変更"
00447 Case 3: .Caption = "複写"
00448 Case 4: .Caption = "削除"
00449 Case 5: .Caption = "行挿入"
00450 Case 6: .Caption = "行削除"
00451 End Select
00452 End With
00453
00454 iLeft = iLeft + BUTTON_WIDTH + MARGIN
00455 If i = 4 Then
00456 iLeft = iLeft + (MARGIN * 3)
00457 End If
00458 Next
00459
00460 '終了ボタン
00461 Set btnDummy = frmMain.Controls.Add("Forms.CommandButton.1")
00462 With btnDummy
00463 .Width = BUTTON_WIDTH
00464 .Height = BUTTON_HEIGHT
00465 .Left = frmMain.Width - BUTTON_WIDTH - MARGIN - 5 '5 は 微調整
00466 .Top = iTop
00467 .Caption = "終了"
00468 End With
00469 Set objForm.cmdExit = btnDummy
00470
00471 '実行ボタン
00472 Set btnDummy = frmMain.Controls.Add("Forms.CommandButton.1")
00473 With btnDummy
00474 .Width = BUTTON_WIDTH
00475 .Height = BUTTON_HEIGHT
00476 .Left = frmMain.Width - BUTTON_WIDTH - MARGIN - 5 - BUTTON_WIDTH - MARGIN '5 は 微調整
00477 .Top = iTop
00478 .Caption = "実行"
00479 End With
00480 End Sub