文字列としてのプロシージャー名を起動する方法(Run,OnTime)
文字列変数の中にプロシージャー名が入っていて、そのプロシージャーを起動したい場合になります、
実際には、そのような構造が良いとは思えませんが、知っていればプログラミングの幅が広がります。
それぞれのメソッドについては以下を参照してください。
第120回.OnTimeメソッド
Application.Run "subProc"
本来は、他のブックのプロシージャーを起動する場合に使う事が普通なのですが、
当然ながら、自身内のプロシージャーも起動できます。
引数を指定する場合は、
Application.Run "subProc", "引数1", "引数2"
このようになります。
Application.OnTime Now(), "subProc"
引数が必要な場合は、指定方法が少し面倒です。
Application.OnTime Now(), "'subProc ""引数1""'"
Application.OnTime Now(), "'subProc ""引数1"",""引数2""'"
全体を'(シングルクォーテーション、アポストロフィ)で囲み、
引数を""(ダブルクォーテーション2つ、"の中に"を入れる場合は2連続にします)で囲みます。
複数の引数は、,(カンマ)で区切ります。
Application.OnTime Now() + TimeSerial(0, 0, 0)
としておくと、後でメンテしやすい場合あるかと思います。
少し時間差で起動させたくなったら、
Application.OnTime Now() + TimeSerial(0, 0, 1)
というように出来ますので。
Application.Run
でも同様の指定が可能です。
Application.Run "'subProc ""引数1""'"
Application.Run "'subProc ""引数1"",""引数2""'"
さらに、
OnActionプロパティ(CommandBarやShape)
でも、引数を指定する場合は同様の指定になります。
同じテーマ「マクロVBA技術解説」の記事
文字列でのセル参照と文字列の計算式について(Evaluate,INDIRECT)
リボンを非表示、2003以前ならメニューを非表示
印刷ページ設定の余白をセンチで指定する(CentimetersToPoints)
文字列としてのプロシージャー名を起動する方法(Run,OnTime)
ドキュメントの作成者を取得(GetObject,BuiltinDocumentProperties)
画像サイズ(横x縦)の取得について
文字種(ひらがな、全半角カタカナ、半角英大文字等々)の判定
オブジェクトとプロパティの真実
オブジェクト式について
オブジェクトの探索方法(オートシェイプのTextを探して)
条件付きコンパイル(32ビット64ビットの互換性)
新着記事NEW ・・・新着記事一覧を見る
抜けている数値を探せ|エクセル雑感(2022-07-01)
.Net FrameworkのSystem.Collectionsを利用|VBA技術解説(2022-06-29)
迷路ネコが影分身の術を体得したら…|エクセル雑感(2022-06-27)
迷路にネコが挑戦したら、どうなるかな…|エクセル雑感(2022-06-26)
サロゲートペアに対応した自作関数(Len,Left,Mid,Right)|エクセル雑感(2022-06-24)
「マクロの登録」で登録できないプロシージャーは?|エクセル雑感(2022-06-23)
オブジェクトのByRef、ByVal、Variant|エクセル雑感(2022-06-22)
コメントから特定形式の年月を取り出す|エクセル雑感(2022-06-19)
4,9を使わない連番作成|エクセル雑感(2022-06-17)
連番を折り返して出力|エクセル雑感(2022-06-16)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.マクロって何?VBAって何?|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説
- ホーム
- マクロVBA応用編
- マクロVBA技術解説
- 文字列としてのプロシージャー名を起動する方法(Run,OnTime)
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。