[[20190318195026]] 『選択シートにだけマクロを実行したい or 選択シー』(wakaba) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『選択シートにだけマクロを実行したい or 選択シートにあるマクロ実行ボタンを一括で全て押したい』(wakaba)

はじめまして。
前任者が作った帳票を効率化したいのですが、標記の件で行き詰まっております。
http://officetanaka.net/excel/vba/tips/tips31.htm
も参考にしましたが、うまく動かせませんでした。

できれば「選択した複数シートにあるマクロ実行ボタンを一括で全て押す」マクロが組めれば有難いのですが、そんなマクロは作れるのでしょうか…?

< 使用 Excel:Excel2016、使用 OS:Windows10 >


「選択した複数シートにあるマクロ実行ボタンを一括で押す」
となるとやや難しいですが
おそらくマクロのボタン1つ1つは
Private Sub CommandButton*_Click()
ここに処理
End Sub

というコードで作成されていると思われます。
処理の部分を独立させて
Sub ボタン1の処理()
ここに処理
End Sub
という処理を作成したのち、
Sub 連続処理()
Call ボタン1の処理
Call ボタン2の処理
End Sub
という処理を別途用意してはいかがでしょうか。

一応Application.Runという処理があったはずなので
Application.Run "ブックのパス!シート名.CommandButton*_Click"
という処理でもできるはずですが、今後のメンテナンスとかも考えるとお勧めはしません。
(高橋) 2019/03/18(月) 20:30


早速のご返信有難うございます。
記載忘れすみませんが、実はボタンを押して処理するシートの数は毎回可変になっておりまして…。
とすると、教えて頂いたApplication.Runか
もしくは選択したシートのみマクロを実行するマクロがよいのでしょうか。

選択したシートのみマクロを実行するには、
シート選択→ショートカットキーからマクロ呼び出し→マクロを選択し実行
とすれば良いかとやってみると、処理されたのは1つのシートだけで、選択シートすべてに処理は行われずでした…。
(wakaba) 2019/03/18(月) 21:03


 まずそのコード提示されてはどうですか?
 ボタンを押すことが主旨のような書き方ですが
 実際はボタンだろうがなんだろうが
 選択されたシートに処理が実施されれば満足なわけですよね?
(稲葉) 2019/03/18(月) 21:25

応用できませんか
[[20090428144242]] 『複数あるコマンドボタンを一括で押す』

(マナ) 2019/03/18(月) 21:43


 Activexコントロールを前提に語られていますが、
 質問者さんからなにも情報ないですよね?

(稲葉) 2019/03/18(月) 22:00


フォームのボタンなら
これで、どうでしょうか。
  Sub test2()
    Dim ws As Worksheet

    For Each ws In ActiveWindow.SelectedSheets
        Application.Run ws.Shapes(1).OnAction
    Next

 End Sub

(マナ) 2019/03/18(月) 22:14


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.