Excel VBA質問箱 IV

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

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


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

【75509】VBAのタブストリップについて 初心者 14/4/25(金) 20:19 質問[未読]
【75510】Re:VBAのタブストリップについて γ 14/4/25(金) 21:42 発言[未読]
【75512】Re:VBAのタブストリップについて 初心者 14/4/27(日) 8:31 質問[未読]
【75513】Re:VBAのタブストリップについて γ 14/4/27(日) 10:00 発言[未読]
【75514】Re:VBAのタブストリップについて 初心者 14/4/28(月) 6:38 お礼[未読]

【75509】VBAのタブストリップについて
質問  初心者  - 14/4/25(金) 20:19 -

引用なし
パスワード
   EXCEL2010のVBAでユーザーフォームを作成し、コマンドボタン押下時に動的にタブストリップを埋め込みました。
この動的に追加したタブストリップ上にチェックボックスを埋め込みたいのですが、コーディング方法をご教授頂きたいです。

Private Sub CommandButton1_Click()
Dim ObjTab As Control
Set ObjTab = Me.Controls.Add("forms.tabstrip.1")
With ObjTab
   .Left = 150
   .Top = 50 
   .Height = 150
   .Width = 150
End With

【75510】Re:VBAのタブストリップについて
発言  γ  - 14/4/25(金) 21:42 -

引用なし
パスワード
   なぜ動的に設定する必要があるのでしょうか。
普通は最初にコントロールは配置しておいて使いますよね。
「書式」メニューを使えば、配置も綺麗に出来ると思いますが。

どうしてもということなら、同じように下記のようにできます。
Dim Objchk As Control
Set Objchk = Me.Controls.Add("forms.checkbox.1")
With Objchk
   .Left = 170
   .Top = 90
   .Height = 30
   .Width = 80
   .Caption = "checkbox1"
End With

【75512】Re:VBAのタブストリップについて
質問  初心者  - 14/4/27(日) 8:31 -

引用なし
パスワード
   回答ありがとうございます。
問題なく追加する事ができました。

動的にタブストリップを追加する理由は、フォーム上にあらかじめ配置したコマンドボタンをクリックした際に、別フォームを呼ぶのではなく、フォームの横幅を広げて、そこにタブストリップを埋め込む仕様の為です。

また、追加で質問させて頂きたいのですが、動的に追加したタブストリップのタブ(ページ?)を移動した際にイベントを拾う事は可能でしょうか?

以下ではタブを移動してもイベントを拾いませんでした。

【ユーザーフォームに記述】
Dim ObjTab As msforms.TabStrip
Set ObjTab = UserForm2.Controls.Add("forms.tabstrip.1", "TabStrip1")
   With ObjTab
     .Left = 150 '表示位置(左基準)
     .Top = 50  '表示位置(上基準)
     .Height = 150 '表示位置(高さ)
     .Width = 330 '表示位置(横幅)
   End With

【クラスモジュールに記述】
Public WithEvents ObjTab As TabStrip
Private Sub ObjTab_Change()
MsgBox "sss"
End Sub

よろしくお願い致します。

【75513】Re:VBAのタブストリップについて
発言  γ  - 14/4/27(日) 10:00 -

引用なし
パスワード
   こんなことでしょうか?
フォームモジュールに以下を書きます。

Option Explicit
Private WithEvents ObjTab1 As MSForms.TabStrip

Private Sub ObjTab1_Change()
  MsgBox "change"
End Sub

Private Sub CommandButton1_Click()
  Set ObjTab1 = Me.Controls.Add("Forms.TabStrip.1")
  With ObjTab1
      .Left = 150 '表示位置(左基準)
      .Top = 50  '表示位置(上基準)
      .Height = 150 '表示位置(高さ)
      .Width = 330 '表示位置(横幅)
   End With
End Sub

【75514】Re:VBAのタブストリップについて
お礼  初心者  - 14/4/28(月) 6:38 -

引用なし
パスワード
   ありがとうございました。

望んでいた動きができました。

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