Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


49289 / 76732 ←次へ | 前へ→

【32359】Re:ユーザフォームの動的なチェックボックス
発言  ichinose  - 05/12/13(火) 11:18 -

引用なし
パスワード
   皆さん、おはようございます。

>動的に作成しようと思えばできます。(Controls.Add メソッドを利用する)
>ただし、イベントまで設定することはできません。
クラスモジュールを使用するとそれらしいことは出来ます。

ユーザーフォームをひとつ用意してください(Userform1)。

クラスモジュール(Class1)に
'===========================================================
  Public WithEvents chkbx As MSForms.CheckBox
  Public chkid As Long
Private Sub chkbx_Change()
  MsgBox "チェックボックス" & chkid & "が " & IIf(chkbx.Value, "ON", "OFF") & " になりました"
End Sub


Userform1のモジュールに
'=============================================
Private cls_chkbx() As Class1
Private clsnum As Variant
'==============================================================
Private Sub UserForm_Initialize()
  clsnum = Application.InputBox("チェックボックスの数を入力", , , , , , , 1)
  If TypeName(clsnum) <> "Boolean" Then
    If clsnum > 0 Then
     ReDim cls_chkbx(1 To clsnum)
     For idx = 1 To clsnum
       Set cls_chkbx(idx) = New Class1
       With cls_chkbx(idx)
        .chkid = idx
        Set .chkbx = Controls.Add("Forms.CheckBox.1")
        With .chkbx
          .Top = idx * 50 + 10
          .Left = 15
          .Height = 16
          .Font.Name = "MS ゴシック"
          .Font.Size = 16
          .Caption = "チェックボックス" & StrConv(idx, vbWide)
          .AutoSize = True
          End With
        End With
       Next idx
     With Me
      .Width = 200
      .Height = (clsnum + 1) * 50 + 30
      End With
     End If
    End If
End Sub
'======================================================
Private Sub UserForm_Terminate()
  For idx = 1 To clsnum
    Set cls_chkbx(idx).chkbx = Nothing
    Set cls_chkbx(idx) = Nothing
    Next
End Sub


標準モジュールに

'====================================
sub main()
  userform1.show
end sub

としてmainを実行してみてください。

0 hits

【32347】ユーザフォームの動的なチェックボックス こぼらー 05/12/13(火) 9:40 質問
【32351】Re:ユーザフォームの動的なチェックボックス やっちん 05/12/13(火) 10:06 発言
【32352】Re:ユーザフォームの動的なチェックボックス Blue 05/12/13(火) 10:20 回答
【32353】Re:ユーザフォームの動的なチェックボックス こぼらー 05/12/13(火) 10:28 発言
【32354】Re:ユーザフォームの動的なチェックボックス Blue 05/12/13(火) 10:33 回答
【32358】Re:ユーザフォームの動的なチェックボックス こぼらー 05/12/13(火) 11:11 お礼
【32359】Re:ユーザフォームの動的なチェックボックス ichinose 05/12/13(火) 11:18 発言
【32361】Re:ユーザフォームの動的なチェックボックス Blue 05/12/13(火) 11:26 お礼
【32375】Re:ユーザフォームの動的なチェックボックス こぼらー 05/12/13(火) 16:24 質問
【32376】Re:ユーザフォームの動的なチェックボックス Blue 05/12/13(火) 16:34 回答

49289 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free