• 締切済み

エクセル関数 マクロ

EXCELで作ってある表に数字を入力する時、 (例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、 セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、 セルA3⇒B3⇒C3(⇒D1⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 >例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、 >セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、 >セルA3⇒B3⇒C3(⇒D3⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。(一部訂正) 今回の質問の場合は、VBAでなくてもよいけれども、設定が面倒です。 オプション-編集-入力後のセルを移動する 方向「右」にして、 A1-F5 など、入力範囲を選択して、Enter キーを押せばよいです。 Worksheet_Changeイベントで、できるというのは、少し意味が違うようです。 挙動がおかしいと思うのは、Enter の後に、キーの移動が一度、設定の「下」に行って、それから、横に移動するからでしょう。出来れば、キーの移動を「右」に変えれば、「下」に動く挙動はなくなります。しかし、Enter キーだけですと、どんどん右に行ってしまいます。 元の質問は、入力してEnter を入れるのではなく、Enter を押して動かす、ということですと、内容が違ってきます。以下は、定番のマクロです。 '標準モジュール Sub SetKey() 'キー設定  Application.OnKey "~", "MoveKeys"  Application.OnKey "{ENTER}", "MoveKeys" End Sub Sub SetKeyOff() '設定解除  Application.OnKey "~"  Application.OnKey "{ENTER}" End Sub Sub MoveKeys()   With ActiveCell     Select Case .Column       Case 1 To 5: .Offset(, 1).Select       Case 6: .Offset(1, -5).Select     End Select     End With End Sub

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.4

以前私が回答した質問に似たようなものがありましたので参考に。 http://oshiete1.goo.ne.jp/qa4028581.html

参考URL:
http://oshiete1.goo.ne.jp/qa4028581.html
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

ANo.2のコードですが、一部スペルミスをしている箇所があります。 そのため、一部意図した動きになっていません。 どこか見つけて修正をしてください。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

マクロになります。 該当シートの見出しを右クリック>コードの表示 と進めばVBEが起動し、コードウインドウが表示されます。 そこに、下記コードをコピペしてください。 Worksheet_Changeイベントを使っています。 データ入力後、Enterで確定してください。 指定範囲内で希望の動作をします。 Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Count <> 1 Then Exit Sub   If Target.Rows > 10 Then Exit Sub   Select Case Target.Column     Case Is <= 5       Target.Offset(, 1).Select     Case Is = 6       Cells(Target.row + 1, "A").Select   End Select End Sub

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.1

関数はセルに入力されているデータを処理するもので、この質問のように入力すたら何かの処理をするという事にはむいていません。 質問事項をかなえるにはマクロで処理する事になります。 マクロが処理を開始するタイミングとして"入力した後エンターキーを押したら"となるのなら、Worksheet_Changeイベントで行えばできると思います。 マクロは簡単な物につてはエクセルの"マクロの記録"の機能を使えば簡単にできますが、今回の場合は、単純に"入力後は右に動く"だけでなく"ある一定のセルの場合はA列に戻り一行下がる"と条件により二つの動きを支持しなければなりません。 この場合はマクロの構文に IF...Then......EndIf で指示してやります。 この Worksheet_Changeイベント や IF...Then......EndIf の構文はエクセルの"マクロの記録"の機能ではできないので、自分でVBEで編集する事になります。 まずは簡単に出いいので、マクロについてエクセルのヘルプファイルやWEBサイトの情報をチェックしてみてください。

関連するQ&A

  • エクセルのマクロ 並んだ数字の幾つかを抜き出してその合計を計算させたいのですが・・

    エクセルのマクロ(VBA)について、教えてください。 セルのA1からA2・・・A1000までに「01,03,06,08,20,」のように5つの数字がカンマで区切られて入力されています。 1.この5つの数字をb.c.d.e.f.の1から1000のそれぞれのセルに配置するマクロ 2.この5つの数字の数字の合計をb1から1000のセルに表示させるマクロは難しいでしょうか? MID関数をひとつづつのセルに入れていたのですが、マクロでできれば効率が良いと思い手引書等で考えたのですがよく分からないのです。

  • エクセルの関数について

    以下のようなことを実現できるエクセルの関数を教えてください。 <状況> ・ひとつのセルに、複数の数字が「,」区切りで入力されている。  (仮にA1セルとします) ・B1セルに検索値が入っています。 <実現したいこと> B1の値が、A1に含まれるとき、C1に”○”を返す。 このときのC1に入力すべき関数を教えてください。 <具体例> A1:12,13,14 B1:12 C1:○

  • エクセル関数を教えて下さい。

    エクセルの数式を教えて下さい。三角関数を全く忘れていますのでよろしくお願 いします。 図形とエクセルの表を画像でアップしました。  Aは角度  B/C/Dは長さ   一行目   セルA1に 任意の角度を入力 B1に 任意の長さを入力するとC1には C の長さの値が出るエクセル関数 D1には Dの長さの値が出るエクセル関数  2行目も同じ様に  A2に 角度  C2に長さを 任意に入力すると  B2とD2に 長さが出てくる エクセル関数   3行目も同じ様に  A3に角度 D3に長さを 任意入力すると  B3とC3に 長さが出てくるエクセル関数  4行目  B4とC4に 長さを任意入力すると  A4に角度 D4に長さが出てくる エクセル関数 

  • IF関数でしたい事と、似たような計算

    エクセル2002です。 表の中に   A     B   C  D 1  1~10  A 2 11~20  B 3 21~30  C 4 31~40  D    : と入力されています。 表示させたい内容は ★「C1セルには数字を入れます。その数字が8ならば、8は1~10の中の数字なので、D1のセルにAと表示される。15ならばBと入力したいです。 使う関数は、IF関数‥‥と迷ったのですが、1~20、21~30‥‥199~200まであるので、IF関数が使えません。 関数では、このような可能でしょうか? 可能であれば教えてください。 不可能であり、他の方法があるなら、教えてください。 お願いします。

  • エクセルについて

    WinXPのエクセル2000を使っています。 勤務表の休みの数を調べるために下記の表を作りました。 B C D E F G 1班 2班 3班 4班 5班 6班 上記の表でA2に1と入力したら自動でB2に1の数字が、A3に2と入力したら自動でC3に1の数字が、A4に3と入力したら自動でD4に1の数字が、でるようにするには何かよい方法はありませんか?教えて下さい。マクロか関数を使えばできそうなんですが・・・

  • エクセル関数で教えてください。

    エクセルでB列には商品名(セルB1にみかんセルB2にみかんセルB3にみかんセルB4に柿セルB5に柿セルB6に柿、C列にはみかん柿の数量ランク(例:C1に1~、C2に10~、C3に100~と記入)、D列にはC列のランク毎の単価が表示されています。(D1に1000、D2に800、D3に500、D4に1500など) この表を、ほかのシートのA1にみかん、A2に柿と入力させて、B1に関数を入力してB1セル内で数量ランクの1~1000、10~800、100~500と横一列に表示させたいのですが可能でしょうか? どのような関数が適当でしょうか? このパソコンはエクセル使えず、添付できずわかりにくい説明で申し訳ないのですがどなたか教えてください。よろしくお願いいたします。

  • Hyperlink関数をクリックしてくれるマクロ

    どなたか詳しい方教えていただけないでしょうか? ExcelのセルA1に以下のhyperlink関数を入れています。 =HYPERLINK(″#C″&MATCH(B1,C:C),″クリック″) 隣のB1に入れた数字を元にC列に存在する同じ数字先にジャンプするように関数を作ってます。 A1にできたリンクをクリックしたは、B1に入力されているものと同じ数字先のC列に飛ぶようにマクロを組みたいのですが、どうしたらいいでしょうか? ハイパーリンク関数がマクロに組み込めないのと色々調べてみましたがうまくいかないのでお手上げです。 どなたか詳しい方教えていただければと思います。 どうぞよろしくお願いします!

  • エクセル2003関数について

    対戦結果表を作っています。エクセルの関数を入れ込みたいと思いますので、御知恵をお貸しください。仮に氏名A(B1セル)と氏名B(D1セル)が戦い、氏名A(B1セル)が2点先取し(C1セル)に2を入力、氏名B(D1セル)が1点を取り(E1セル)に1を入力しました。勝者は氏名Aの為、関数によって(F1セル)に自動的に氏名Aを表示させたいのです。パターンは2対1,1対2,0対0の3通りです 0対0は空白状態にしたいのです。困っています助けてくださいお願いします。

  • エクセルexcelの関数やマクロ教えて下さい!

    エクセルexcelについて教えて下さい。 数字が入力されたセルに数を加えていきたいのですが、 "1"が入力されたセルに"3"と入力すると"4"と表示されるようにする方法を教えて下さい。関数やマクロなど勉強中ですが、難しくて出来ません。お願いします。

  • エクセル関数の質問です。

    エクセルでセルA1=4の場合セルB2=セルD1、セルA1=5の場合セルB2=セルE1、セルA1=6の場合セルB2=セルF1というように、セルA1に数字を入力するとセルB2に反映するようなセルB2に入力する関数を教えて下さい。  セルA1には月(4月から3月)の数字(4~12、1~3)が入り、4月のときにはD列(D1)、5月のときにはE列(E1)、6月~3月にはF列(F1)~O列(O1)の数字が入ります。よろしくお願い致します。

専門家に質問してみよう