No.4ベストアンサー
- 回答日時:
こんばんは
>Aマクロ・Bマクロともに標準モジュールにあります。
ということは
Sub Macro1()
'
' Macro1 Macro
'
'
〔処理〕
End Sub
Sub Macro2()
'
' Macro2 Macro
'
'
〔処理〕
End Sub
…と10シート分、あると言うことでしょうか?
一番ベタな方法として、Sheet11のボタンから以下のように各マクロをよびだすことができます。各シートのボタンを押さなくてもマクロから他のマクロを実行することが出来ます。
Sub all()
Call Macro1
Call Macro2
…
End Sub
余談ですが、"Call"は省略しても構いません。サンプルなので、マクロから他のマクロを呼び出しているというのをハッキリさせるためにあえて入れました。
No.6
- 回答日時:
こんばんは
テストとして、以下の手順を試してみてください
・エクセルを開く(ワークシートは3つで)
・名前を付けて保存
・Sheet1のA1に「abc」を入力
・Sheet2のA1に「def」を入力
・標準マクロを作成
・以下のマクロを標準モジュールに作成して実行
を試してみてください。
同じbook内ならば、他のワークシートの値を利用するのは簡単です。
Sub サンプル()
Worksheets(3).Range("A1") = Worksheets(1).Range("A1")
Worksheets(3).Range("A2") = Worksheets(2).Range("A1")
End Sub
何度も回答いただいてありがとうございます。
テストやってみました。こんな方法もあるんですね。勉強になりました。
教えていただいたCall Macro や皆さんの回答からマクロ作成してみます。
ありがとうございました。
No.5
- 回答日時:
昨日、しばらく読んで考えていましたが、あまり良い方向に行きませんね。
「Aマクロ」1-5、「Bマクロ」6-10ともに統一されたマクロとします。
これについては、キーワードがひとつ抜けているとすれば、フォーム・コントールのボタンという前提がなければ、話が頓挫してしまいます。これが、ActiveX のボタンだと変わってきます。
しかし、大変失礼ですが、統合したマクロはお書きになれないでしょうか。できていないから、ボタンを1つずつクリックして、コピーということをおっしゃっているのかもしれません。
もし、そういう要求だとしたら、後でコードはお書きしますが、マクロを専門に回答している者とっては、それは、あまりに嬉しなくないコードです。知っている人なら誰でもできるからです。
#3さんの所でもご指摘になっていますが、質問と答えが咬み合っていないのは、肝心な部分が書かれていないからです。以下のような、初級の内容ですが、この程度は質問の際に見せてほしいと思います。
実際は、データを直接、Sheet11に持っていく方法がありますが、内容としては、イレギュラーです。
ご質問者さんは、初心者といっても、一応まともな目的を持ったコードなら、分かる人はその内容を直そうとしてくれます。その内容を評価だけしたり、バカにしたりする人間は、本当は、マクロなど出来ない人だと思います。小出しに情報を出して、それを受けて答えるという方式では、一向に先に進みません。全部、さらけ出してしまいましょう。(^^;このレベルに仕事での守秘義務などはないでしょうから。
VBAの範疇では、私もみなさんも、ほとんど、みんな初心者と変わりません。10年やっていても、アルゴリズムのトレーニングもしていないし、ポインターがどうとか知っているわけではなく、単に、経験値の違いだけです。だた、回答者の中には、その経験値自体を否定するという輩もいますが、それでは破綻が見えてしまいます。
そういう中で、私が哀しいのは、基礎的な回答をしたのにも関わらず、全然、間違った回答が選ばれることですね。
'//
Sub TestMacro()
Dim i As Long
For i = 1 To 10
With Worksheets("Sheet" & i)
.Range("AA1").CurrentRegion.ClearContents
.Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=.Range("H1:H2"), _
CopyToRange:=.Range("AA1"), _
Unique:=False
Application.ScreenUpdating = False
With .Range("AA1").CurrentRegion
.Offset(1).Copy
Worksheets("Sheet11").Cells(Rows.Count, 1).End(xlUp).PasteSpecial
.ClearContents
End With
.Select
.Range("A1").Select
Application.ScreenUpdating = True
End With
Next i
Application.Goto Worksheets("Sheet11").Range("A1")
End Sub
'//
'*-----
Sub ButtonsExecute()
Dim i As Long
Dim myMacro
'フォームコントロール・ボタンが、シートに一個の場合
ThisWorkbook.Activate
For i = 1 To 5
Application.Run Worksheets("Sheet" & i).Buttons(1).OnAction '**
Next i
End Sub
'** ActiveX コントロールのボタンの場合は、Application.Runは不要です。
Worksheets("Sheet" & i).OLEObjects(1).Object.Value = True
解説:
Application.Run Worksheets("Sheet" & i).Buttons(1).OnAction '
これは、ボタンの呼び出しに登録しているマクロを呼び出すことで、もちろん、標準モジュールのマクロを、Call で直接呼び出して間違いなけば、それでも問題はありません。でも、ボタンに登録したマクロと標準モジュールにあるそのマクロとの整合性はありません。それは、限りなく間違いはないでしょうけれども、それなら、シートごとのボタンを実行するのではなく、最初からマクロの一本化を考えたほうがよいと思います。
余計なことを書いて、不愉快になりましたら、申し訳ありません。
いただいた回答を見て気づきましたが、初心者でなく超初心者でした。
作成していただいたマクロをゆっくりと理解していきたいと思います。
ありがとうございました。
No.3
- 回答日時:
前出のrukukuです。
最後の、「Sheet2」は誤記です。
本題です。
「Aマクロ」「Bマクロ」の置き場所はどこでしょうか?
各シートに置いてあると、先ほどの回答のようなことになります。
「標準モジュールに」に置いてあるのならば、どのシートのボタンからでも簡単に呼び出すことができます。
また、補足要求です。
ご質問の状況があいまい過ぎて、回答の方も一般論になってしまいます。
固有名詞や数値などは適当なダミーに置き換えても構いませんので、実際の使用方法をもう少し詳しく教えてください。
No.2
- 回答日時:
こんばんは
Application.Run
という命令を使えば可能です。
例えば、
Sheet1に
Sub Test()
MsgBox "test"
End Sub
Sheet2に
Sub RunTest()
Application.Run "Sheet1.Test"
End Sub
というマクロをつくった場合、Sheet2のRunTestを実行すれば、Sheet1のTestが実行されます。
Sheet2
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/11 11:47
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBAでvlookup関数から、別シート参照するやり方・・・ 2 2022/11/14 18:49
- Visual Basic(VBA) VBA active sheetをPDF化して指定フォルダに保存 1 2022/07/07 11:27
- Visual Basic(VBA) このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を 2 2023/02/23 20:13
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
別シートのマクロを実行する方法
Excel(エクセル)
-
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
Excel vbaで別ブックのコマンドボタンをクリック
Visual Basic(VBA)
-
-
4
excel-vbaで作成したマクロを別シートから実行させたい
Visual Basic(VBA)
-
5
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
6
作ったマクロを複数のシートで実行できるようにしたい。
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
複数シートのボタンに同一の動作をさせたい
Excel(エクセル)
-
9
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
10
エクセル マクロ 別シートから実行すると動かない
Excel(エクセル)
-
11
マクロを複数シートに実行するには?
Excel(エクセル)
-
12
コマンドボタンをクリックでシートからシートに移動させたい
Visual Basic(VBA)
-
13
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
14
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
15
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
16
エクセルの、記録を終了したマクロに内容を追加したい
Excel(エクセル)
-
17
Excel:コマンドボタンの移動
Excel(エクセル)
-
18
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
19
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
20
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
LDPlayerのマクロの編集方法を...
-
Excelのマクロでボタンを押すと...
-
スプレッドシートの文字の色判定
-
エクセル ボタンに設定したマク...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
Ctrl+Zが使えない
-
【マクロ】マクロボタンをクリ...
-
エクセルの、記録を終了したマ...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルの表を複数枚印刷した...
-
他のBOOKにマクロを反映させな...
-
Excelでカーソルの右下をダブル...
-
リーグ戦(10チーム2コート)作...
-
テキスト・データをエクセルの...
-
ルビ削除のマクロの仕様?
-
エクセルでマクロを確認できな...
-
複数のExcelをバッチファイルの...
-
EXCELをTEXTに一括変換出来ませ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
-
エクセル マクロ名にブック名...
-
Excelのマクロでボタンを押すと...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
エクセルの、記録を終了したマ...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの表を複数枚印刷した...
-
エクセルでマクロ(Excel 4.0)...
-
LDPlayerのマクロの編集方法を...
-
エクセルマクロで、別のブック...
-
エクセルで明日の日付を表示す...
-
別シートのマクロボタンをマク...
-
(Excel VBA)シートコピー時マ...
-
Ctrl+Zが使えない
-
リーグ戦(10チーム2コート)作...
-
マクロをマクロを使ってコピー...
-
Excelのマクロ名の並び順の法則...
おすすめ情報
説明不足ですみません。
基本のデータベースがあります。sheet1~sheet10にフィルタオプションで抽出されるように
マクロボタンでマクロの記録をしました。Aマクロ・Bマクロともに標準モジュールにあります。
抽出されたデータの合計値をsheet11に反映させているのですが、
sheet1~sheet10のマクロボタンをいちいち押さなくてもsheet11だけですべて行えるように
したいのです。
sheet11でボタンを作りマクロの記録をしてみました。
sheet1を選択しActiveにしてマクロボタンを押す。それをsheet10まで行いましたが
だめでした。
マクロ初心者ですのでFor~Nextを具体的に記入いただけると助かります。
補足します。
Aマクロ・Bマクロは共通で使用しているので
sheet1~sheet5には
Sub Macro1()
'
' Macro1 Macro
'
'
〔処理〕
End Sub
sheet6~sheet10には
Sub Macro2()
'
' Macro2 Macro
'
'
〔処理〕
End Sub
という感じです。
sheet1~sheet5、sheet6~sheet10 は同じフォーマットで作成しているので
同じマクロを適用しています。
Call を使うsheetを指定する方法などありますでしょうか。
よろしくお願いします。