[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロボタン』(maco)
6個のマクロボタンがあり、それぞれ1課〜6課までの実績を集計するようになっています。 メンテ等の関係から分けています。 これとは別に6個のマクロをイッキに動かすマクロボタンを1つ作成したいのです。 (説明下手でスミマセンm(__)m) 元のマクロを繋いでボタンに登録するしかないでしょうか? 教えて下さい。
Sub まとめて() Call 1課のマクロ Call 2課のマクロ Call 3課のマクロ Call 4課のマクロ Call 5課のマクロ Call 6課のマクロ End Sub というふうにまとめてはいかが? (ROUGE)
ありがとうございます。Callでまとめ、希望どおり出来ました。(maco) そこで教えて頂きたいことがあります。 自分なりに…自動記録でボタンをクリックする作業を登録すると下記のようになりました。(@=1課のマクロです) 初心者で恐縮なのですが、CallとApplication.Runとの違いを教えて下さい。 単純に疑問がでてしまいました。
Application.Run "'課別.xls'!@" Application.Run "'課別.xls'!A" Application.Run "'課別.xls'!B" Application.Run "'課別.xls'!C" Application.Run "'課別.xls'!D" Application.Run "'課別.xls'!E"
こういう風に書けるってところかな? For i = 1 To 6 Application.Run "'課別.xls'!" & i Next
もうひとつ、ブック名をフルパスで書いておくと、 ファイルが開いてなくても、自動で開いて実行してくれる。 (開いている時と、開いていない時の書き方が違うので 事前にチェックが必要。) BJ
こんな違いもあります。
ヘルプにも書いてありますが、Run メソッドはオブジェクトを引数として渡すことができません。 ↓を新規モジュールに貼り付けて、初めにtest_call、次にtest_run を実行させてみてください。 一方は a と b の値両方が表示されますが、他方は b の値しか表示されません。 a が引数として渡されていないということです。
Sub sample(a, b) a = "サンプル:a" End Sub
Sub test_call() Dim a As String Dim b As String b = "サンプル:b" Call sample(a, b) MsgBox a & vbCrLf & b End Sub
Sub test_run() Dim a As String Dim b As String b = "サンプル:b" Application.Run "Book1!sample", a, b MsgBox a & vbCrLf & b End Sub
(1or8)
早速のご回答ありがとうございます。 実際にやってみました。納得です。 深いとこは何も分かっていないので 作業効率、目的を踏まえ勉強します。 最初は繋がないとまとめて動かせないのか、という固い発想が 皆さんのお陰で解れましたm(__)m 本当にありがとうございました。(maco)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.