• ベストアンサー

excelで セルの移動時にマクロ実行を設定したい。

エクセルでボタンオブジェクトを作りクリックすると実行するようなマクロのを登録方法はわかるのですが、特定のセルB2に数値を入力してEnterKeyを押した際に実行するようにマクロを登録するにはどうするのでしょう。マクロの編集画面で 最初の行が Sub となっていますが、あそこに何かをいれたらいいのでしょうか?教えてください。よろしくお願いします。

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

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

#1です。補足に関して 全セル対象なら Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("sheet2").Cells.Font.Size = 12 End Sub 範囲指定するなら Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("sheet2").Range("a1:c10").Font.Size = 12 End Sub 上記の真中の行を#1と組み合わせて使うこと。 Sheet1のどこを変化させてもフォント設定が行われる。それで宜しいか。変化を反映させるセルを限定するなら、また別の知識が必要です。マクロの初めはイベントに手を出すのは難しいと言うことです。

yamutya
質問者

お礼

ありがとうございました。無事目的通りのものができました。

その他の回答 (2)

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

関数をつくればどうでしょう? ツール->マクロ->Visual Basic Editor を選び 挿入->標準モジュール を選びます そこに  Function hoge(dum As Range) '↓↓↓ここに好きな命令を書いてください。 MsgBox "aaa" ' 例です '↑↑↑ここまで End Function 等を書きます。 一旦保存して EXCELのシートに戻りましょう 特定のセルB2が変わったらでしたね B2以外のセル(範囲外のセル)に =hoge(B2) って入れてください 複数でしたら B2:C5など出来ます Worksheet_Changeは他のセルが変わった時もイベント(処理)が されますので 非常に時間がかかりますよ。

yamutya
質問者

お礼

ありがとうございました。関数ではどうやら プロパティは変更できないようです。関数は引数から数値を返すのみのようです。

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

シート(Sheet1と仮定)のメニューで、ツール-マクロ-VBEをクリックする。 VBE画面になりますが、そのVBAProjectの中のシート名等のツリー表示の中に、Sheet1があると 思いますので、そこをダブルクリックします。 すると画面が出てきます。その上部の(General)の▼をクリックして、「Worksheet]をクリック 、右の(Declarations)の▼をクリックして 「Change」をクリックします。 Private Sub Worksheet_Change(ByVal Target As Range) End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub 下のSelectionChange部分が出てしまったら、範囲指定して、Delキーで抹消してください。 間の行にプログラムコードを打ち込んでください。 シート(Sheet1)に戻り、どこかのセルにデータを入れて、予想通りなるかチェックします。 Changeイベントは色々欠点もあるイベントですが 自分が使う程度なら使い物になるでしょう。 もう一つ、変化を捉え変化させると、このイベントに該当し、処理がぐるぐる回りになることです。 それで一旦その働きを止めて、処理が終わると、元へ戻してます。なかなか初めての場合は難しいです。 下記は右隣のセルに+10した数をセットしてます。 漢字をいれたら?->他人に使ってもらうには、チェックがどんどん必要になり、コードが増えます(略)。さらに知識が必要になります。実用に耐えるマクロを作るのは難しいですよ。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Target.Offset(0, 1) = Target + 10 Application.EnableEvents = True End Sub

yamutya
質問者

補足

ありがとうございました。sheet1に数値入力したらsheet2のフォントサイズを12に変更したいのです。回答のtarget部分をsheet2select range指定 font指定にしてみましたがフォントサイズは変化しませんでした。すみません 重ねて教えて頂けたら幸せます。

関連するQ&A

  • エクセル アクティブ中のセルにマクロ実行

    表題の件について質問させていただきます。 基本的に数字の入っているセルなのですが、たまに数字の前に備考として特定の文字を入力しています。  特定文字例:東京・千葉・埼玉・鈴木・木村・佐藤  入力後の例:東京232・木村50 その特定の文字の入力には、マクロ登録してあるボタンで実行しています。  ActiveCell.FormulaR1C1 = "特定の文字" さて、質問なのですが、上記ではセルを選択しているときにボタンを押すことで特定文字の入力はきるのですが、入力中っていうのかな?カーソルが点滅している最中にはマクロが実行できないのです。 その為、数字の入った後のセルを選択してボタンを押すと、いちど数字の上に特定文字が上書きで入力されて数字が消えてしまいます。 現在は、ボタンを押して特定文字を入力した後に再度数字を入力しています。 どうにか、セルの選択中でもカーソル点滅中でもマクロを動かすことはできないでしょうか。 よろしくお願いいたします。

  • セルへの入力により「実行するマクロを選べる」ような仕組みは・・・

    毎度、お世話様です。タイトルの件ですが 【状況】 単純なものですがマクロが50個以上になってきました。 オブジェクトに登録すると「シートがオブジェクトだらけ」になってしまいます。 【やりたいこと】 例えばあるセルに「001」と入力しマクロを実行すると「Sub 自動001()」が実行 されるようにしたいのですが、可能なものでしょうか? 私はaltF8で選んでいるのですが、他人にも分かりやすい方法を模索中です。 どなたかよろしくお願いします(ponta_024)

  • エクセルで特定のセルに入力後エンターを押すとマクロが起動

    エクセルで特定のセルに入力後エンターを押すとマクロが起動 エクセルで、ファームで作成したボタンを押すとマクロが起動するように して有ります。 記憶させたマクロの起動にはファームで作成したボタンを右クリックし 「マクロの登録」でモジュールを登録する方法しか知りません。 これを特定のセルにデータを入力後エンターを押して入力値が確定されたら このマクロが起動するようにするにはどうすればいいのでしょうか?

  • 【エクセル】マクロでのセル移動についてお尋ねしたいのですが。

    エクセルで、行数の異なる複数の列に大量のデータを入力しています。 「マクロ実行用のボタン」を1つ作って、そこをクリックする度に、 例えば、セルを「B2」→「C2」→「D2」→「B2」→繰り返し のように順番に選択するといった、マクロを作りたいのですが、詳しい方、アドバイスお願いします!

  • セル移動マクロを教えて下さい。

    エクセルで最終行の次の行(新規入力となる行)の左4つ目のセルに移動するマクロを作りたいのですが、出来るでしょうか。 例えば列Aに1から3000までのNOが入っているとします。 B列からD列までは他のデータに使用しているため新規入力データE列の行から右に入力しています。 NO125の行までデータ入力している場合、ボタンをクリックすれば、A列のNO126(新規入力行のA列)にセルが移動するマクロです。 よろしく、お願いいたします。

  • EXCEL あるセルに数字が入力されれば既存マクロ実行させたい

    ボタン等のグラフィックオブジェクトのマクロ実行は簡単なのですが、 ある位置のセルにデーターが入力されれば、 既存のマクロを自動実行させることできますか?

  • マクロが実行されるセル範囲の変更を簡素化したい

    excel 2016を使っています。 例えば、ボタンを押すと指定したセルA1~A10までに入力されている数値を昇順に並べ替えるマクロがあるとします。 この数値が入力されているセルA1~A10の範囲をドラックして、D1~D10の位置に移動すると、マクロが実行される範囲を新たにD1~D10に指定しないとならないのですが、マクロが実行される範囲をA1~A10の範囲に固定して、別の場所に移動してもマクロを修正しなくても良い方法はありますか。

  • エクセル マクロを自動実行

    仕事で使っている書式で、A1に「あいうえお」と入力すると、A2「あ」、B2「い」、C2「う」、D2「え」、E2「お」とMID関数で振り分け、入力後、A行を「表示しない」と「再表示」するマクロをボタンで実行するようにしています。 そこで、 この書式には必ず入力しなければならない項目があるので(非表示しない行のセル)、この項目に入力したら行の非表示マクロを実行し、空白なら行の再表示マクロを実行出来るようにしたくて調べているのですが見つかりません。 1クリックの手間を省く方法をご存知の方ご教示ください。 宜しくお願いします。

  • エクセルのブックを開いた時にマクロを自動定期に実行したいのですが。

    エクセル97でブックを開いたときに、自動的にマクロを実行させたいのですが、どのようにマクロを記述すればいいのか教えて頂けませんか。 sub autorun() sheets(2).select sheets(1).cells(2,2)=cells(5,5) end sub のように、シート2のある数値をシート1のセルに自動的に貼付したいのですが。 このマクロは自動的には実行されませんので、どうすれば自動的に実行するようにできるのかが知りたいのですが。 よろしくお願いします。

  • エクセルでマクロを自動的に実行

    表題の通りなんですが、エクセルで、あるセルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのですが、そういったことってできるのでしょうか。 具体的には、  1、バーコードリーダーで数値をセルに入力  2、その数値に対応する名前をvlookup関数にて表示  3、その名前が入力された時点でマクロが自動的に実行 と言うものです。  3の部分がよく分からずに困っています。できるかどうか分かりませんが、もしできるようであるならその方法を教えていただければありがたいです。どうか、よろしくお願いします。

専門家に質問してみよう