エクセルで「Enter」が押されたら処理を動かす

このQ&Aのポイント
  • エクセルでA1のセルの何か入力されたら、A2に「aaaaa」、A3に「bbbbb」と表示したいのです。B6のセルに何かが入力されたらB7に「aaaaa」とB8に「bbbbb」です。
  • セルに何かが入力されてというのは「Enter」が押された時をイメージしていますが、実際には「12345」とキーを押し「→」でセル移動することもあると思いますし、マウスで移動することもあるので、「セルに何かが入ったら」という感じです。
  • 勿論、そのセルが空白になれば、1行下、2行下も空白に戻したいです。 よろしくお願いします。教えてもらえば理解出来るのですが、エクセルでマクロ?を組むのは経験が浅く、何処に何を書けば良いのか、詳しく教えてもらえれば幸いです。
回答を見る
  • ベストアンサー

エクセルで「Enter」が押されたら処理を動かす

よろしくお願いします。 エクセルでA1のセルの何か入力されたら、A2に「aaaaa」、A3に「bbbbb」と表示したいのです。B6のセルに何かが入力されたらB7に「aaaaa」とB8に「bbbbb」です。 適当な大きさにセルを編集して使うのでセルの高さや幅は可変です。A4用紙で印刷出来る範囲で利用するので、どのセルに入力されるかはわかりませんし、どの列まで、どの行まで利用するかも決まりません。どのセルに入力されても、入力されたセルの1行下に「aaaaa」、2行下に「bbbbb」という動きをするようにしたいのです。 また、何かを入力されてというのは「Enter」が押された時をイメージしていますが、実際には「12345」とキーを押し「→」でセル移動することもあると思いますし、マウスで移動することもあるので、「セルに何かが入ったら」という感じです。 今、セルの条件付き書式設定で「次のセルのみを書式設定」で「空白なし」の場合に塗りつぶしをしているのですが、そのタイミングで1行下と2行下に固定表示したいです。 勿論、そのセルが空白になれば、1行下、2行下も空白に戻したいです。 よろしくお願いします。 教えてもらえば理解出来るのですが、エクセルでマクロ?を組むのは経験が浅く、何処に何を書けば良いのか、詳しく教えてもらえれば幸いです。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 対象のシートのシートタブを右クリックしてコードの表示で VBE画面(シートのイベントプロシージャ)を出して、下記コードをコピペ Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Count > 1 Then Exit Sub   Application.EnableEvents = False   If Target.Value <> "" Then     Target.Offset(1) = "aaaaa"     Target.Offset(2) = "bbbbb"   Else     Target.Offset(1) = ""     Target.Offset(2) = ""   End If   Application.EnableEvents = True End Sub で、試して下さい。

その他の回答 (2)

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.3

マクロを組んで解決したい訳では無いですよね? もっと簡単に計算式だけで処理してはいかがでしょうか? つまり、例えば、A1に何か入力された時と言うのは、言い換えれば「空白でなければ」とゆうことで良いですよね? ならば、イベントが起きた時に入力したいセル、例えば、 A2には、 =IF(ISBLANK(A1),"","aaaaa") A3には、 =IF(ISBLANK(A1),"","bbbbb") と式を書けば良いのではないでしょうか?

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

この質問は、VBAでいう「イベント」という仕組みの問題でしょう。質問者はこのことを十分知らず質問しているのではないか。VBAのイベントを勉強のこと。#1の回答のように、ENTERキーを押すとは、セルの値が変化するということに置き換えてもよいことを言っているなら、Changeイベントでとらえれば、仕舞だが文字どおり「ENTER」キーを押したことをとらえるのはむつかしいと思う。エクセルその他のソフトで、データ入力などでENTERキーは、≫古くから他のソフトでも、特別な意味があり、改行の意味にも使われる。その区別がむつかしいのでAPI(VBAよりグ下位レベル)などの問題になる。 >入力されたセルの1行下に「aaaaa」、2行下に「bbbbb」という動きをするようにしたいのです。bbbbb」という動きとは何?bbbbbはどう決めるの? この意味不明。 CHANGEしたかどうかは、フォーカスが別セルに移ったというような意味であると菅家られる。 ーー データ入力+ENTER データ入力+TAB] データ入力+矢印キー データキー+他セルクリック その他もあるかもしれない。(シートのセル以外の他の部分を選択など) コピーしたものを貼り付け ーー これらは同類の効果を生み、そのセルでのデータが確定する。==>CHANGEしたとみなす。ただし、上書きして同じデータを入れた場合はChangeにならなかったと思う(訂正。反応した)。 テキストボックスなどでENTERのイベントがあるが1文字入れたつど反応したりして使いづらいものである。 Cacelや取り消しなどの場合どうなるかも勉強が必要。 複数セルが変化した場合などもむづかしい面がある。 生兵法怪我の元にならないように。 しかし、普通の場合は便利な仕組みである。 >セルの条件付き書式設定で「次のセルのみを書式設定」で「空白なし」の場合に塗りつぶしをしているのですが、そのタイミングで1行下と2行下に固定表示したいです。 この意味もよくわからない。 書式の変更はChangeイベントに反応しないと思う。 Changeは「セルの値」限定で、セルの他の属性(書式やコメントなど)には反応しないと思う。 シートのChangeイベント Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "AAA" End Sub を作ってどう反応するか(メッセージボックスが出たら反応したということ)をやってみたらよい。 色々経験を積んで考えることであろう。 == 質問は>1行下と2行下に固定表示したいです ン亜土の意味がよくわからない。変化したセルはTargetで、1行下はOffsetで簡単に指定できるのだが。

関連するQ&A

  • 2つの表を交互に合体させたい!

    2つの表を交互に合体させて、1つの表にさせる やり方はあるでしょうか??  AAAAA BBBBB  AAAAA BBBBB       ↓     AAAAA     BBBBB     AAAAA     BBBBB イメージはこんな感じです。 今セルの行間は空いてません。行間さえ1行ずつ 空けられれば 形式を選択して貼付け → 空白セルを無視して貼付で 合体できるのですが、表がかなりの数なので、1行ずつ 行挿入するのは時間がかかってしまいます。 何かいい案がありましたらお願いします。

  • エクセルで05'30"と表示したい

    エクセル2007を利用してますが、セルに例えば0530と入力したら05'30"と表示されるようにしたいのですが可能でしょうか?セルの書式設定のユーザー定義でmm'ss"としたのですが上手くできませんでした。それとA1セル 03'00" A2セル 05'40"と入力されている場合にB2セルにA2-A1の分秒を引いた数字 02'40" を表示させたいのですがどのように入力すればよいでしょうか? 以上宜しくお願いいたします。

  • エクセルの0表示について

    エクセルの0表示について  A1    B1    C1 9:00  12:00  =B1-A1 上記のように入力しています。 A1とB1は空白の時もあるのですが、そのときはC1は 0:00 と 表示されます。 ツール⇒オプションの0値は他セルの都合上表示させておきたいです。 セルの書式設定の表示形式は時刻の13:30にしているのですが、この表示形式を ユーザー定義にして0:00を表示させないようにすることはできないでしょうか?

  • エクセルで空白の場合はエラー表示を出す方法

    こんにちは。 エクセルで、A1のセルが空白の場合A3のセルに入力が出来なくなる、B1のセルが空白の場合B3のセルに入力が出来なくなる、C1のセルが空白の場合C3のセルに入力が出来なくなるような設定をすべての行に加えたいのですが、どのようにしたらよろしいのでしょうか? 入力規則を使うのでしょうか? どなたか詳しく教えてください。 よろしくお願いします。

  • エクセル条件付き書式(空白でない場合に色を付ける、偶数行・奇数行毎に色を変える)

    エクセルの条件付き書式の設定で、 (1)セルが空白でない場合に色を付ける、 (2)偶数行・奇数行毎に色を変える という2つのことを同時に行う方法があれば 教えていただけないでしょうか? (※空白セルは、色なしに設定) (1)=A1<>"" → 赤 (2)=MOD(ROW(),2)=0 → 青  =MOD(ROW(),2)=1 → 黄 上記の設定の場合、空白セルが青・黄になります。 入力すると赤に変わります。 こちらが行いたいことは、 【空白セルは「色なし」で、入力すると、 奇数行は黄色、偶数行は青になることです。】 例 ABC 1* ←A1は黄 2 * ←B2は青 3 A1とB2以外のセルは色なしとなるようにしたい。 ただし、入力した場合に色がつくようにしたい。 よろしくお願いします。

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • Excel セルの書式設定

    Excel2002を使っています。 セルB1に、数式 =A1 を設定しています。 さらに、セルB1には、セルの書式設定で、ユーザー定義 "*** " @ " ***" を設定しています。 セルB2は、数式 =A2 セルB3は、数式 =A3 ・ ・ ・ (上記のユーザー定義は B列に設定されています。) セルA1に『チョコレート』と入力したら、 セルB1には、『*** チョコレート ***』と表示されます。 もし、セルA1が空白の場合『*** ***』が表示されます。 でも、セルA1が空白なら、セルB1も空白にしたいのですが、その方法はありますでしょうか? よろしくお願いします。

  • エクセルでのセルの色づけ方法

    教えてください。 エクセルで、8000行、15列程度の表があります。 例えば、A2に、Aと入力すると、A2とA1の両セルが水色 Bと入力すると、A2とA1の両セルが黄 Cと入力すると、A2とA1の両セルが赤 他にも、例えば C4に、Bと入力すると、C4とC3の両セルが赤 Bと入力すると、C4とC3の両セルが黄 Cと入力すると、C4とC3の両セルが赤   などのように、A=水色   B=黄色   C=赤になるように 条件付き書式を設定し、その書式を他のセルへコピーして、 1000行位までは、ちゃんと保存できたのですが、8000行程度まで、コピーして、保存すると、『保存できません』と表示されてしまい、1000行以上は条件付き書式のコピーをしても、コピーはできますが、保存できないため、大変困っています。。。もしかして、条件付き書式には、書式のコピーができる制限があるのでしょうか?あとは、VBなどで対応 するしかないのでしょうか。VBもまったく分かりません。。 是非、よろしくお願いいたします。

  • エクセル98、もしくは2003の操作のALT+ENTER

    普通エクセルでは右のセルがが空白の場合長文をいれても 右のセルにも文が見えるようになっています。 この状態で文を何行にもすることはできるのでしょうか? ALT+エンターをやるとセルが大きくなってしまいます 具体例 A1に長文をいれる A1以外が全て空白とします A1に入りきれないのでB1、C1、D1に続けて見えます これをA1、B1、行が変わってA2,B2に文が見えるようにしたい。 A1のセルの大きさは変えたくありません。 環境はエクセル98、もしくは2003です エクセル98で表をマクロをつかって作りたいのですが 記録するファイルを開いてないため保存できません という感じのエラーがでます。 表作成のときはマクロを使い、使い終わったらそのマクロは そのファイルでは使えなくする、つまりそのファイルを開いても マクロが使用されています。と警告が出ないようにする。 そのマクロ自身はほかのファイルを作成するときにまた使う という状態にしたいのですがうまくいきません どうすればいいのでしょうか?

  • エクセルで

    エクセルでセル内表示にa月b日~a月d(b+4)日と表示する(要は月曜~金曜と言う意味です)ためにセルの書式設定のユーザー定義で入力したいのですが、どのような式?を入力すれば良いでしょうか? セルにはa/bのみ入力します。 よろしくお願いします。

専門家に質問してみよう