• ベストアンサー

エクセルマクロでご教授下さい。

エクセルマクロでご教授下さい。 1.あるマクロをセルを入力(Enter)したら実行するには どのように記述すればいいでしょうか? 例えばG12に文字を入力しEnterした時 に実行したい。 2.あるマクロをシートを選択した時に実行するには どのように記述すればいいでしょうか? 以上宜しくお願い致します。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

何れもワークシートイベントプロシージャになりますので添付のURLを参照下さい。 一例です。 >1  ⇒Private Sub Worksheet_Change(ByVal Target As Range)   If Intersect(Target, (Range("G12")) Is Nothing Then Exit Sub   処理   End Sub >2  ⇒Private Sub Worksheet_Activate()   処理     End Sub

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

1.は、ApplicationのOnKeyメソッドを調べてみてください。 Application.OnKey "{ENTER}", "Proc" を実行しておけば、ENTERキーが押されたとき、Procプロシジャが実行されます。

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

「したとき」とか「したら」という場合はイベントという考えをべbb今勉強のこと。 各オブジェクトごとに、エクセルVBAぐらいでは限られたものになっている。 こんな大きな基礎的なことは、こんなところ絵質問するのでなく、VBAの本やWEBを照会して読むこと。 まあ参考まで (1)>セルを入力(Enter)したらーこれそのものはない。 セルの値が変わったらで代用 シートを特定して、シート見ジュールというところへ Private Sub Worksheet_Change(ByVal Target As Range) End Sub シートタブで右クリック、コードの表示で見られる。 (2)Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox Sh.Name End Sub シートを選択するとシート名を出す。 辺りが良いのかな。「Thisworkbook」にある。

関連するQ&A

  • エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい

    エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい。 たとえばセルA1に、1以上の数値が入力されたときに、セルA2に今日の日付を入力させる マクロの記述はどうすれば宜しいでしょうか? 以下の記述で、セルA2に日付は入力させられるのですが、 セルA1に1以上の数値が入力された場合に起動させる方法が分かりません。 Range("A2").Select SendKeys "^(;){ENTER}" ご教授の程、宜しくお願い申し上げます。

  • マクロについてご教授下さい

    エクセルについて質問です。 以下のようなデータがあったとします。 ※イメージ図を添付しております。 ☆パターン1  | A   | B ----------------- 1 |あああ|えええ ----------------- 2 |いいい|おおお  |いいい| ----------------- 3 |ううう|かかか ※A2セルはセル内でAlt+Enterで改行しています。 このような状態のデータを以下パターン2のように変更したいです。 ☆パターン2  | A   | B ----------------- 1 |あああ|えええ  |    |  |いいい|おおお  |いいい|  |    | |ううう|かかか ----------------- ※1行にまとめたい。 そして、またパターン1の状態にも戻せるようにしたいのです。 以下のような運用を考えています。 [1]パターン1で情報を入力 [2]マクロを実行してパターン2として保存   ※パターン2は別シートにする予定 [3]パターン2でマクロを実行し、パターン1へ [4]パターン1の状態でデータを編集し、再度パターン2として保存 自分で作ってみようと思ったのですが、挫折してしまいました。。。 マクロの知識としては、簡単な業務用の管理ファイルを作れる程度ですが、まだ勉強中です。 かなり、面倒な質問とは思いますが、ご教授お願いいたします。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • エクセルで特定のセルを選択したい(マクロ)

    以下のようなマクロを組もうとしていますが、出来ません。 sheet1において 1)マクロを実行すると、メッセージボックスが出る。 2)メッセージボックスに入力した文字と同じ文字が入力されているセルを選択する。 3)2)のセルの1行下のセルを選択する。 2)で必ずエラーが出てしまいます。どのような方法が良いのか教えていただけるとありがたいです。よろしくお願いします。

  • エクセル、マクロで「末尾を1文字削除」したいのですが

    またまた、お願いします。 エクセル初心者向けの入力支援としてマクロを使っています。 【やりたい事】 セルを選択しマクロを実行すると「該当セルの末尾1文字が削除される」というのは可能でしょうか? カーソルを入れてBSすれば済むだけの事ですが、諸般の事情で「セル選択+マクロ実行」の動作にしたいのです。 どなたかよろしくお願いします(ponta_024)

  • エクセルのマクロで入力文字確定(Enter)したら印刷開始し入力文字を

    エクセルのマクロで入力文字確定(Enter)したら印刷開始し入力文字をDeleteする。 エクセルで自分が作成したファイルを開きます。 これにはマクロが入っていて、ファイルを開くと セルのD4がアクティブになるようにして有ります。 (カーソルがD4の所に行って点滅で文字入力待ちの状態) シート保護をしてあり、セルD4だけがロックをはずしてあるので セルD4にしか入力は出来ません。 文字入力をすると当然D4のセルに入力がされるのですが 入力後その文字を確定する為にEnterキーを押します。 そうしたらそのシートの印刷がされる(1部です)ようにで来ますか。 そして印刷終了後、セルD4の文字はDeleteされて またアクティブ(カーソルがD4の所に行って点滅)にして 次の入力を待ちたいです。 (文字入力→Enterの瞬間印刷と同時に文字入力が消えるので  入力者は入力確定を見れなくなりますが → 2秒後にDeleteとか出来ますか?  または、Enterキーを押すと画面に「印刷中です」と表示したあと  セルD4をDeleteとか。)  現在は、 表示-ツールバー-フォームから作成したボタンにマクロを登録してあります。 セルD4に文字を入力しEnterキーで確定後、このボタンを押すと印刷が実行され セルD4の文字がDeleteされてアクティブ(文字入力待ち状態)になります。 このボタンを押すのを省きたいです。 よろしくお願いします。

  • エクセル 特定セルの表示拡大マクロ

    エクセル2010のマクロについて質問させていただきます。 特定セルが選択された場合のみ表示を140%に拡大し、そのほかを選択した場合は100%に戻すマクロをご教授願います。 具体的な例としては エクセル A1~E4 で表を作成しています。 入力セルは A2,B2,C2,D2,E2,A4,B4,C4,D4,E4 の10カ所に数値を入力します。 上記10カ所を毎回選択するのか面倒なので「名前の管理」で10カ所を選択しています。 エクセルファイルを開くと10カ所を選択するマクロを実行しています。 その10カ所を範囲指定した中で選択セルを「Enter」で送っていき、「D2」もしくは「D4」セルを選択した場合のみ、表示倍率を上げそのほかのセルを選択した場合は表示倍率を戻すマクロをご教授願います。 名前の管理(範囲指定)を実行せずに、単にセルだけを選択した場合のマクロは作成できたのですが、範囲指定した中でのセル選択ではマクロが実行されませんでした。 単にセルだけを選択した場合拡大するマクロを記述しますので、よろしくお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address() = "$D$2" Or Target.Address() = "$D$4" Then ActiveWindow.Zoom = 140 Else ActiveWindow.Zoom = 100 End If End Sub マクロを学び始めて間もないため、初歩的なミス、見当外れな質問をしてしまうかもしれませんが、何卒よろしくお願いします。

  • エクセルのマクロ

    エクセルでマクロを使うときにセルに入力した数値などを変えた時に自動でマクロを実行するようにできませんか?

  • Excel マクロについて

    Excelで、セルを選択して、マクロを実行すると、その選択したセルに赤マル(オートシェイプの)がはいるようなマクロをつくりたいのですが・・・。まだ、マクロは使ったことが無いもので・・・。詳しくお願いします。

  • エクセルのマクロのセルの範囲指定

    エクセルのマクロで、うまくセルの範囲を指定できません。 例えば、 Range(Cells(5.6), Cells(8, 7)) = "AAA" と、指定した時は、F5:G8のセルにAAAという文字を代入するつもりで書いています。 ところが、マクロを実行すると、F1:G8まで、AAAの文字が代入されます。 どうしてでしょうか。 宜しくお願い致します。

専門家に質問してみよう