Excel VBA質問箱 IV

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

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


5279 / 13646 ツリー ←次へ | 前へ→

【51745】クラス化をしたいのですが ある 07/10/3(水) 9:49 質問[未読]
【51748】Re:クラス化をしたいのですが Jaka 07/10/3(水) 11:08 発言[未読]
【51749】Re:クラス化をしたいのですが ある 07/10/3(水) 11:14 お礼[未読]
【51775】Re:クラス化をしたいのですが ある 07/10/4(木) 11:57 質問[未読]
【51777】Re:クラス化をしたいのですが Jaka 07/10/4(木) 12:36 発言[未読]
【51781】Re:クラス化をしたいのですが ある 07/10/4(木) 13:30 お礼[未読]

【51745】クラス化をしたいのですが
質問  ある  - 07/10/3(水) 9:49 -

引用なし
パスワード
   質問です。下記のようにプロシージャ名がばらばらで
処理内容が似ているときのものをまとめたいのですが
どのようにしたらいいのでしょうか?
今回はセルも1つづつ違うのでその処理といっしょに
まとめたいですよろしくお願いします、

Private Sub Cutoff_Txt_Change()
  If Cutoff_Txt = Cells(2, 2) Then
    Cutoff_Txt.BackColor = RGB(255, 255, 255)
  Else
    Cutoff_Txt.BackColor = RGB(255, 255, 0)
  End If
End Sub
Private Sub SpRest_Txt_Change()
  If SpRest_Txt = Cells(3, 2) Then
    SpRest_Txt.BackColor = RGB(255, 255, 255)
  Else
    SpRest_Txt.BackColor = RGB(255, 255, 0)
  End If
End Sub
Private Sub SpWERest_Txt_Change()
  If SpWERest_Txt = Cells(4, 2) Then
    SpWERest_Txt.BackColor = RGB(255, 255, 255)
  Else
    SpWERest_Txt.BackColor = RGB(255, 255, 0)
  End If
End Sub



【51748】Re:クラス化をしたいのですが
発言  Jaka  - 07/10/3(水) 11:08 -

引用なし
パスワード
   リンクだけですけど。
Http://www.vbalab.net/vbaqa/data/excel/log/tree_234.htm

Http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=137;id=FAQ

他にもクラスで検索すれば何個か見つかると思います。

【51749】Re:クラス化をしたいのですが
お礼  ある  - 07/10/3(水) 11:14 -

引用なし
パスワード
   ▼Jaka さん:
早速返事ありがとうございます。
リンクで解決できそうです。
ありがとうございました。

>リンクだけですけど。
>Http://www.vbalab.net/vbaqa/data/excel/log/tree_234.htm
>
>Http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=137;id=FAQ
>
>他にもクラスで検索すれば何個か見つかると思います。

【51775】Re:クラス化をしたいのですが
質問  ある  - 07/10/4(木) 11:57 -

引用なし
パスワード
   ▼ある さん:

テキストフォームのクラス化は出来たのですが
Cellの番号の変化が出来ません(わかりません)でした。
是非ご教授お願いします。

ーーーークラスモジュールーーーーー
Private Sub MyCtrl_txt_change()
With MyCtrl_txt
    If .Value = Cells(i, 2) Then    ←ここの i をテキストによって変化させたいです。
      .BackColor = RGB(255, 255, 255)
    Else
      .BackColor = RGB(255, 255, 0)
    End If
  End With
End Sub


>質問です。下記のようにプロシージャ名がばらばらで
>処理内容が似ているときのものをまとめたいのですが
>どのようにしたらいいのでしょうか?
>今回はセルも1つづつ違うのでその処理といっしょに
>まとめたいですよろしくお願いします、
>
>Private Sub Cutoff_Txt_Change()
>  If Cutoff_Txt = Cells(2, 2) Then
>    Cutoff_Txt.BackColor = RGB(255, 255, 255)
>  Else
>    Cutoff_Txt.BackColor = RGB(255, 255, 0)
>  End If
>End Sub
>Private Sub SpRest_Txt_Change()
>  If SpRest_Txt = Cells(3, 2) Then
>    SpRest_Txt.BackColor = RGB(255, 255, 255)
>  Else
>    SpRest_Txt.BackColor = RGB(255, 255, 0)
>  End If
>End Sub
>Private Sub SpWERest_Txt_Change()
>  If SpWERest_Txt = Cells(4, 2) Then
>    SpWERest_Txt.BackColor = RGB(255, 255, 255)
>  Else
>    SpWERest_Txt.BackColor = RGB(255, 255, 0)
>  End If
>End Sub
>:
>:

【51777】Re:クラス化をしたいのですが
発言  Jaka  - 07/10/4(木) 12:36 -

引用なし
パスワード
   こんな感じでテキストのオブジェクト名で対応するとか。

With MyCtrl_txt
    Select Case .Name
      Case "Cutoff_Txt"
        i = 2
      Case "SpRest_Txt"
        i = 3
    End Select
    If .Value = Cells(i, 2) Then
      .BackColor = RGB(255, 255, 255)
    Else
      .BackColor = RGB(255, 255, 0)
    End If
  End With
End Sub

【51781】Re:クラス化をしたいのですが
お礼  ある  - 07/10/4(木) 13:30 -

引用なし
パスワード
   ▼Jaka さん:
jakaさんいつもありがとうございます。
この方法でやってみます。

>こんな感じでテキストのオブジェクト名で対応するとか。
>
>With MyCtrl_txt
>    Select Case .Name
>      Case "Cutoff_Txt"
>        i = 2
>      Case "SpRest_Txt"
>        i = 3
>    End Select
>    If .Value = Cells(i, 2) Then
>      .BackColor = RGB(255, 255, 255)
>    Else
>      .BackColor = RGB(255, 255, 0)
>    End If
>  End With
>End Sub

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