• ベストアンサー

マクロの自動実行

エクセルで A 列のデータが変動した場合に、マクロを実行させるにはどうしたらよいのでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

考えているシートのシートタブで右クリック。コードの表示を選ぶ。 Generalの▼をクリックー>Worksheetを選択 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub が出てしまうと思うが無視して Declarationの▼をクリックー>Change(イベント)を選択 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then MsgBox "A列変化" End If End Sub これでA,B列などのセルの値を変えてみて、感じがつかめたら MsgBox "A列変化" の行をマクロ名に置き変える。

bignemoyan
質問者

お礼

非常にわかりやすいご回答ありがとござました。 早速活用させていただき、理想どおりの動きをしてくれました。 社内の工程タイムとその動作時間をつかみたかったので非常に助かりました。 If Target.Column = 1 Then MsgBox "A列変化" End If この部分すごく助かりました。ありがとうございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート見出しで該当のシート名を右クリックして「コードの表示」を選択し、表示される画面で例えば次のように入力します。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Range("B1") = "A列が変化" End If End Sub

関連するQ&A

  • マクロの自動実行について

    マクロの自動実行についてお伺いします。 今、エクセルに一定のデータを貼り付けたら、(例えばナンバーを元に)自動的にソートされるマクロを作ろうとしてます。 以下流れになります。 **************************** 以下貼り付け(エクセル以外からの元データ) (プログラムの詳細は分かりませんが、エクセルなどにコピペできるものらしいです。) 1|Aさん 3|Bさん 2|Cさん ~ N|XXさん ↑をエクセルをシートに貼り付けしたら、別シートにソートされて 1|Aさん 2|Cさん 3|Bさん ~ N|XXさん という表が出来上がる。 **************************** 自動実行だとworksheet_changeというイベントがあるようですが、特定の範囲なりセルなりが指定されてる場合にいきる処理のように見えます。 そんなに広範囲ではないことは予想できますが、はっきりとしたデータの範囲も量も分からない場合、ループで範囲を覚え、それをソートするのがいいのでしょうか。 ちょっと質問が曖昧な気もしますが、アドバイスお願いします。

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

  • エクセルのマクロで実行したいです!

    こんにちは。エクセルのマクロで実行したいことがあります。 周りに聞く人もいなくて困っています。 エクセルのデータがあり、売上の集計をしないといけませんが、 その前にデータを整える必要があります。 A列の10000000番代以上で会社によって固定の値となります。 A列の1~1005番までが担当コードでその横が(B列)担当者名になります。 実行したいマクロは、サンプルとしてF列~L列に表示しておりますが、 実際は、A列~G列に実行します。 またB列の【不良代替】とある文字、及び【小 計】の行は削除します。 また区分(B列に挿入)には「0」か「1」の数値が入りますが、 それは後にVLOOKをあてるので、問題ないです。 マクロ実行後に、いろいろな会社がありますが、支店も本店(何も記載なし)も 別の列でいいので、例えばI列などに合わせて合計を表示したいです。 名称が色々あるため、一社一社数えると日が暮れてしまいます。 それをマクロで記載するのはできますでしょうか。 ピボットテーブルは使わない方向で行きます。 可能な限りマクロで実行したいので、ご存じの方がいらっしゃれば、 ご教授頂きたいです。宜しくお願いいたします。

  • 日付自動実行マクロについて質問です。

    エクセル2000で日計表を作成しています。 A列には日付のシリアル値が、B列には日付、C列には曜日が入っています。 毎日データを挿入するのはD列からとなります。 そのファイルを開いた時に自動実行マクロでその日のD列にセルを飛ばすのにはどうしたらいいでしょうか? 苦労しています、どなたか詳しい方教えていただけると助かります。

  • マクロの自動実行

    会社のパソコンで毎朝使うエクセルがあるので、そのエクセルはスタートアップに入れております。 実際にはそのエクセルの中でマクロを実行するのですが、スタートアップではエクセルが立ち上がるだけで、マクロまで自動で実行してくれるものではありません。 エクセルが立ち上がると同時に指定のマクロプログラムが走るように…なーんてことができるのでしょうか?? どなたか教えてください。よろしくおねがいします。

  • エクセルでマクロを自動で実行させることはできますか?

    エクセルで 9-9-9 とか書いてあるとこを○の中に9という風に変換する マクロをこちらで教えてもらったのですが これを9-9-9とかのデータを貼り付けた途端に マクロで○の中数字に変換させることはできるんでしょうか? 変換させたい列は決まっていてUの列なんです。 宜しくお願いします。

  • エクセルのマクロの実行が途中で止まってしまいます。

    エクセルで表を作る工程をマクロで記録させて、その後、マクロを実行して特定の表を作ろうと思っても、実行の途中で止まってしまいます。特に、列の幅を変更せずに、途中でとまってしまいます。マクロを使って表を作りたい理由は、エクセル以外のあるデータをエクセルに移動することがよくあって、移動させた直後はエクセルの標準の形式として表になっているので、列幅を変更したり、フォントを変更したり、列の順番を入れ替えたりすることを、自動でおこないたいのです。どなたか教えてください。パソコンのメモリか何かのもんだいですか?わからなくてほんとにこまっています。どなたか教えてください.よろしくおねがいします。

  • EXCL のマクロ自動実行(イベントによる)についてお教えください。

    EXCL のマクロ自動実行(イベントによる)についてお教えください。 エクセルのあるセル(たとえばA1セル)に入力するとマクロが自動実行する方法をお教えください。 よろしくお願いいたします。

  • EXCELでマクロを使った検索&自動計算をするには?

    いつもいろんな方に回答いただき大変助かっております。 まずはそのお礼をさせていただきます。ありがとうございます。 さて、本題ですが、 基本データとして「名前」「金額」「とある数値データ」が各々「A列」「B列」「C列」に100件未満が並んでいます。 (例)    A列 B列 C列 1行 あ様 1000  50 2  い様  10   0 ↓  ↓  ↓  ↓ 100  を様 5000 2500  そして別の場所(同じシート内)に「名前」「金額」「とある数値データ」と、同じ内容が書き込めるスペースを作り、ここにデータを入れてマクロを実行すると、既存のデータ(A~C列)の同じ名前の人へ「金額」「とある数値データ」を加算するものを作りたいのです。 (例)【基本データ】    【加算データ】    A列 B列 C列 … F列 G列 H列 I列 1行 あ様 1000  50   名前 金額 数値 ★★ 2  い様  10   0   あ様  10  62 ↓  ↓  ↓  ↓ 100  を様 5000 2500 ←マクロ実行後、5000に10が足される  マクロを実行後は加算データの入力欄(例ではF2:H2)内の数値が消されすぐに次のデータが入力できるように出来れば尚いいです。 また、A列に追加データに入力したF2と同じ名前がなかった場合、I1(★★の部分)に「該当無し」と表示したいのです。 該当がなかった場合は手入力でA列に名前を新しく入力して金額・数値を入力しますので、判定が必要なのです。 このような内容をするにはどうしたらよいのでしょうか? ちなみにマクロの実行は追加欄の近くにオートシェイプなどでボタンを作りクリックすることでマクロを起動させたいと考えています。 乱文かつ長くなりましたが、どなたか指導いただける方よろしくお願い致します。

  • どのファイルを開いた時もマクロを自動実行。エクセル

    新規にエクセルを開いたときだけマクロを自動実行するには、 personal.xlsで Sub auto_open() ' Macro1 Macro Range("A1").Value = "111" End Sub とすれば良いかと思いますが、 新規に開くどのファイルに対しても ファイル名ABC を含んでいる時だけ マクロを自動的に実行するにはどうしたらよいでしょうか? (ファイルを開いてから マクロボタンを押して マクロに”ファイル名を チェックしてA1にデータを書き込む”があるのはだめです。) (アドインでツールバーボタンを押すのもだめです。) エクセルは2003 OSはXPです。 説明不足でしたらすみません。

専門家に質問してみよう