Excel VBA質問箱 IV

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

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


1814 / 13645 ツリー ←次へ | 前へ→

【71765】コントロールの追加 悩める老人 12/4/6(金) 17:45 質問[未読]
【71767】Re:コントロールの追加 ichinose 12/4/6(金) 19:44 発言[未読]
【71768】Re:コントロールの追加 の追伸 ichinose 12/4/6(金) 19:55 発言[未読]
【71770】Re:コントロールの追加 の追伸 悩める老人 12/4/6(金) 20:05 お礼[未読]
【71769】Re:コントロールの追加 悩める老人 12/4/6(金) 20:03 お礼[未読]

【71765】コントロールの追加
質問  悩める老人  - 12/4/6(金) 17:45 -

引用なし
パスワード
   ユーザフォームにチェックボックス配置を下記コードで実行したところ確かに追加されました。
編集しようとデザインモードでユーザフォームを開いてみるとフォーム上には何もなくて困ってます。
追加したチェックボックスを編集する解決方法をご教示いただければ大変うれしく思います。よろしくお願いします。

Private Sub UserForm_Initialize()
Dim h As Single
Dim chek As MSForms.CheckBox

h = 18

  For i = 1 To 220
   Set chek = Controls.Add("Forms.checkbox.1", "checkbox" & i, True)
   With chek
     .Top = i * h
     .Left = 10
     .Width = 108
     .Height = h
   End With
   With Me
     .ScrollBars = fmScrollBarsVertical
     .ScrollHeight = 221 * h + 10
   End With
  Next

End Sub

【71767】Re:コントロールの追加
発言  ichinose  - 12/4/6(金) 19:44 -

引用なし
パスワード
   ▼悩める老人 さん:
こんばんは。
記述されたコードは、コントロールを
動的に貼り付けたコードです。
ユーザーフォームのInitialize(イベントで行っていますから
ユーザーフォームが表示されている間は、Checkboxが表示されていますが、
ユーザーフォームがUnloadされれば、ユーザーフォームにコントロールは
残りません。よく考えれば、御理解頂けると思います。


>追加したチェックボックスを編集する解決方法をご教示いただければ大変うれしく思います。

Excelバージョンによって設定方法が異なると思いますが、
Excel2002以上では、設定が必要です。Excel2000なら、そのままでよいです。

Excel2002での設定
「ツール」----「マクロ」----「セキュリティ」とクリックし、
セキュリティダイアログを表示させます。
信頼のおける発行元 タブにて、
Visual Basic プロジェクトへのアクセスを信頼する チェックを入れて
OKボタンをクリックします。
設定は、以上です。


対象ユーザーフォーム UserForm1

標準のモジュールに

'=============================================================
Option Explicit
Sub UserForm_add_checkbox()
  Dim i As Long
  Dim h As Single
  Dim chek As MSForms.CheckBox
  h = 18
  With ThisWorkbook.VBProject.VBComponents("userform1").Designer
    For i = 1 To 220
     Set chek = .Controls.Add("Forms.checkbox.1", "checkbox" & i, True)
     With chek
       .Top = i * h
       .Left = 10
       .Width = 108
       .Height = h
     End With
     .ScrollBars = fmScrollBarsVertical
     .ScrollHeight = 221 * h + 10
    Next
  End With
End Sub

これで試してください。

尚、実行後は、
Visual Basic プロジェクトへのアクセスを信頼する チェックをはずしてください。

【71768】Re:コントロールの追加 の追伸
発言  ichinose  - 12/4/6(金) 19:55 -

引用なし
パスワード
   >    For i = 1 To 220
作成するチェックボックスの数、結構、多いですね!!
リストボックスにメンバー(チェックボックスで言うCaption)登録して、
複数選択可能に設定し、チェックではなく、オプションボタンのような
表示でよければ、コントロールは、一つで済みます。


検討して見てください

【71769】Re:コントロールの追加
お礼  悩める老人  - 12/4/6(金) 20:03 -

引用なし
パスワード
   ▼ichinose さん:
 ご多忙のところ早速のご回答有難うございました!
 感謝!感謝!です。
 東北地方に住んでる「悩める老人」ですが今年は雪も多く寒い日々でした。
 今日も積りはしないが雪が降り寒い日ですが「ichinose さん」にはお元気
 でお過ごしください!

【71770】Re:コントロールの追加 の追伸
お礼  悩める老人  - 12/4/6(金) 20:05 -

引用なし
パスワード
   ▼ichinose さん:
 重ね重ねのご回答ありがとうござます。
 取り急ぎお礼申し上げます。

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