Excel VBAで複数シートのボタンに同一動作を行う方法

このQ&Aのポイント
  • ExcelのVBAを使用して、複数のシートに配置されたボタンに同じ動作をさせる方法を教えてください。
  • シートごとにボタンの動作を定義するのが面倒であり、一箇所で動作を管理したいです。
  • ボタンの名前を一括管理し、Generalセクションで動作を定義してもうまくいきません。ご教授お願いします。
回答を見る
  • ベストアンサー

複数シートのボタンに同一の動作をさせたい

ExcelのVBAで、表題の動作をさせたいと考えています。 複数のシート(Sheet1、Sheet2、Sheet3…)にそれぞれ配置したボタンに、 全て同じ動作をさせるのが目的です。 ただし、動作内容そのものは、Generalで定義するなどで一箇所で行うようにしたいです。 シート数が多く、それぞれにボタンを配置するのはいいとして 全てのシートのセクションでボタン動作を一つ一つ定義するのが面倒なため、 ここで質問させて頂いています。 単純に、各シートのボタンの名前をfuncButton1とし、Generalセクションに Public宣言して動作を書きましたが動きませんでした。 (↑ニュアンスとしてこういうやり方をしたい、という事です) どうかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

>やってみたのですが…動作しないのです。 1.ボタンはコントロールツールボックスではなくて、フォームからボタンを作成します。 2.コードはシートモジュールではなくて、標準モジュールに記述します。

min-san
質問者

お礼

できました!ありがとうございました。 フォームのボタンはデザイン度が低いのが難点ですが…。問題解決です。

その他の回答 (2)

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

標準モジュールに共通のコードを書いて、シートのボタンをクリック したときにそれを呼び出す、というのではダメなのでしょうか。 Private Sub CommandButton1_Click() Call Module1.sample End Sub ご質問の意図を誤解していましたら補足お願いいたします。

min-san
質問者

補足

説明が足りなかったようです。 シートのボタンを配置して、「それぞれのボタンに」 動作を定義しなくてはいけないので、それではNGでした。 #将来的にシートやボタンが増えても手間がかからないようにしたかったのです。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ボタンに動作(マクロ)を設定したあと、ボタンををコピーして別のシートに貼付ければ同じ動作をします。

min-san
質問者

補足

コメントありがとうございます。 やってみたのですが…動作しないのです。 コードのウィンドウに動作が追加されないので、動くわけが ないような気もしますが。 遅ればせながら、バージョンの違いでしょうか。 使用しているのはExcel2000です。

関連するQ&A

  • 複数のボタンを同一の動作にするために、まとめて書くには?

    22歳男性です。VBAについて質問があります。 エクセルシート上に複数のボタンを配置しました。ボタンは複数あるのですが全て同一の動作にすることは可能なのでしょうか? 今は以下のように全てに書いています。 sub ボタン1_Click() msgbox "こんばんは" End Sub Sub ボタン2_Click() msgbox "こんばんは" End Sub ・・・・・ でも、これだと全てのボタンに書かなくてはならないので、手間がかかりまくります。 なんとかまとめて書くことはできないでしょうか?

  • excel2003でマクロ用ボタンで検索のボタンをつけたいのですが?

    excel2003でマクロ用ボタンで検索のボタンをつけたいのですが? 現在、excel2003で複数のボタンを配置してそれぞれの機能をVBAでつくってシートに貼り付けてます。 その中の1つのボタンに検索の(通常のEXCELの検索で文字の入力用ボックスがでる)ボタンをつけたいのですが、うまくできません。 VBAでどのように記載したらよいのでしょうか? 宜しくお願いします。

  • excel vba 複数シートをまとめる

    お世話になります。 A.xlsというブックがあります。 その中に[集計]というシートがあります。 このシートに[ボタン]を配置してクリックしたら以下の動作を実現させたいのです。 (1)[集計]シートのA2に位置セット (2)[東京]、[大阪],[名古屋]という名称のシートの列=A2~A62、行=A2~データ最下行にある全データを[集計]シートにどんどんコピー貼り付けして追加していきたいのです。 上記動作を実現するVBAのロジックをどなたかご教授いただけますでしょうか。 よろしくお願い致します。

  • 複数シートから特定シートを読み込む

    VBA初心者です。 ある特定のフォルダに入っている複数のファイルから、指定したシート名のシートだけコピーする方法はあるのでしょうか? ちなみに、フォルダに入っているファイルは全て指定したシートを読み込みたいと思ってます。

  • マクロ 複数のボタン作成

    使用しているのは2010です。 ボタンを1シート上に29個作りたいと思います。 そのボタンの大きさや文字をすべて同じにし、 横一列にきれいに並べて配置したいと思っています。 どのようにしたら、同じ大きさのボタンを作成できますか? また、きれいに並べることができますか?

  • エクセルVBAでクリアボタンを作ったのですが・・・

    エクセルVBAでクリアボタンを作ったのですが、ひとつのシートは表紙でクリアさせず、その他すべてのシートは同じセル範囲をクリアするというボタンを作成したいのですが 「表紙というシートを除いたほかのシート」と宣言したいのですが表現がわかりません。ご回答よろしくお願い致します。

  • 別シートのトグルボタンを指定したい

    複数シートがあって、それぞれのシートにトグルボタンがあるとします。 トグルボタンを押したときの動作は同じなので、 標準モジュールとかに動作内容を記述したいのですが、 「If ActiveSheet.ToggleButton1 = False Then」とか記述しても エラーが出ます。 アクティブなシートにあるトグルボタン1が押された時の動作内容を書きたいです。

  • コマンドボタンの使い方

    エクセルVBAでシート上にコマンドボタンを配置して コマンドボタンに二つの動作を割り当てしたいのですが、できますか? コマンドボタンを押すと、ボタンがくぼんだ状態(B)になって、くぼんだ状態で押すと ボタンが元の状態(A)に戻るようなイメージです。 状態Aが通常状態で状態Bがコマンドボタンが押されたままの状態です。 説明が難しいです。

  • EXCEL VBAで複数シート内のセルをまとめて表を作成

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。

  • 複数画像から1つ選択し別シートへ貼り付ける

    EXCEL2010を使用しております。 1シートに複数枚ある画像の中から1枚を選び(クリックして)、それを別のシートへ貼り付ける (コピー)VBAができません。 1シート内にある全ての画像を選択の対象として、選択(クリック)された画像のみを張り付けたい のですが何方かお解りになる方はいませんか。 何分VBA初心者の為、ご教授願います。

専門家に質問してみよう