私のビジネスでは、非常に単純なマクロに取り組むチームがいくつかあります。私はそれらすべてを互いに読みやすくしても同様の形式で、新しいジョイナーがデータの作業を開始することができます。
私は単純なマクロに言及しています。ほとんどがマクロレコーダーから派生しています
チームの半分使用:
_Sub button()
Call sub1()
Call sub2()
Call sub3()
Call sub4()
End Sub
_
そして他の半分の使用
_Sub button()
Application.Run("sub1")
Application.Run("sub2")
Application.Run("sub3")
Application.Run("sub4")
End Sub
_
私はあなたのサブに引数がない場合、Application.Runには使用がありますが、それにはかろうじての表記があるので、Application.Run("")
を使用する理由はありますか。
それのすべての使用はスピードとプロセスで叩くことができますCall
?
私が使う Application.Run
他のモジュールでプライベートなサブを実行しようとしている場合。マクロをユーザーから非表示にしたい場合は、マクロを実行することができないため、マクロからマクロを実行できない場合は、マクロを実行できません。
モジュール1で私は持っています
Private Sub priv()
MsgBox “Private”
End Suv
_
Module2では、下記にSub or Function not defined
エラー。
Sub callPriv()
Call priv()
End Sub
_
しかしModule2ではこれはメッセージボックスを実行して表示します
Sub callPriv()
Application.Run “priv”
End Sub
_
シートまたはこのWorkbookモジュールのサブを呼び出している場合は、Application.Runを使用することも役立ちます。
Application.Runを通じてパラメータを渡すことができます。マクロをループしているときに使用します。上記の例ではこれを書く必要がなくても:
Sub button()
Call sub1()
Call sub2()
Call sub3()
Call sub4()
End Sub
_
これを書くことができます:
for i = 1 to 4
application.run("sub" & i)
next i
_
潜水艦がSTRパラメータに取り込まれた場合は、これを行うことができます。
for i = 1 to 4
application.run("sub" & i, strVariable)
next i
_