#サンプルコード 極力おなじコードを書かないようにする方法。

2015.03.13

Logging


極力おなじコードを書かないようにする方法。同じオブジェクトを複数配置する場合、クリックした時の処理も同じだったりします。そういう時に同じ処理を何回も書くのはちょっと手間だったりします。オブジェクト名が違うだけのために同様の処理コードを何度も書かなくてはならないなど、面倒くさいので自分は下記のようなコードを書いて同じコードを書かないようにしています。これは例えばの例ですので、他の方法もあると思います。Excelじゃなければもっと大雑把な方法で書くことも可能です。
明日、VSのフリーを使用して同じようなコードなど記載します。もしかすると路線を変更して何かのツールを作るかもしれません(´Д`)。この頃、VSもまともに使用していないので覚えてません・・・・と言うより、感覚的にあれあったなで覚えていますのでググりながらコードを書いてます。スランプ8年目ぐらいになります。もともとスランプでしたのであまり変わらないですね。「えっはい」(゚Д゚)
このコードちょっと意地悪なコードです。(´・ω・`)わかるひとがみると斜め向いたコードだと理解するでしょう(ニヒ、旭化成)
サンプルコードも置いときます。ご自由にお使いください。https://zip358.com/tool/hogeta.zip[DL]

Private Sub CommandButton1_Click()
    cmd_ck CommandButton1, 1
End Sub
Private Sub CommandButton2_Click()
    cmd_ck CommandButton2, 2
End Sub
Private Sub CommandButton3_Click()
    cmd_ck CommandButton3, 3
End Sub
Sub cmd_ck(obj As MSForms.CommandButton, i As Integer)
Dim obj_cmd As MSForms.CommandButton
Set obj_cmd = obj
If obj.Caption = "(-.-)v " & i Then
    obj.Caption = "(-.-)g " & i
Else
    obj.Caption = "(-.-)v " & i
End If
Set obj_cmd = Nothing
End Sub
Private Sub UserForm_Initialize()
Dim cmd As MSForms.CommandButton
Dim ary_cmd As Variant
Dim i As Integer
ary_cmd = Array(CommandButton1, CommandButton2, CommandButton3)
For i = 0 To UBound(ary_cmd)
    Set cmd = ary_cmd(i)
    cmd.Caption = ""
    Set cmd = Nothing
Next
End Sub

タグ

0 To UBound, AM, cmd_ck CommandButton1, cmd_ck CommandButton2, cmd_ck CommandButton3, cmd.Caption, Dim ary_cmd As Variant, Dim cmd As MSForms.CommandButton, Dim i As Integer, Dim obj_cmd As MSForms.CommandButton, End Sub, If obj.Caption, obj As MSForms.CommandButton, Private Sub CommandButton1_Click, Private Sub CommandButton2_Click, Private Sub CommandButton3_Click, Private Sub UserForm_Initialize, Set cmd, Set obj_cmd, オブジェクト, スランプ,