• ベストアンサー

エクセルで自動改行したいのです

エクセルでアンケートのデータを入力しています. 1人分を横に入力しており,すべて同じ項目数(A~Z)です. この時,1人分が終わったら,自動的に次の行の項目Bに移動 することはできないでしょうか? 例えばZ10が終わったら(あるいはAA10に来たら),B11に移動して欲しい. カーソルキーやHomeキーで移動してますが,大変しんどいです. 関数あたりがあれば一番嬉しいのですが. マクロでもやってみます.良い知恵をご指導下さい.

  • na788
  • お礼率86% (13/15)

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.11

自分はExcel2000を使っていますが、Z列でEnterを押下すると次行のA列に移動しました。 ANO4様と自分のサブルーチン名が少し違います。 サブルーチンには2種類あります ??? 1.他のルーチンから呼び出されて動作する 2.イベント(出来事?)が発生したときに動作する 今回は後者のサブルーチンです。 サブルーチン名を見比べてください ANO4様…Private Sub Worksheet_Change(ByVal Target As Range) 自分……Private Sub Worksheet_SelectionChange(ByVal Target As Range) Worksheet_Change:どこかのデータが変化したときに動作します。 従ってデータを入力しなければ動作しません Worksheet_SelectionChange:セルが移動したときに動作します。 どちらも次の命令で条件式が入っています。 アクティブになっているセルの列が26番目(27番目)のとき次行のA列へ移動 うまく説明できませんが、ご理解いただけるでしょうか

na788
質問者

お礼

分かりました.小生1行目を直しておりませんでした.試したところ, 最後が未回答でEnterを入力してもうまく自動改行できました. セル値の変化とセル移動の検知の違いだったのですね.

その他の回答 (10)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.10

No.4です。 なかなか「これで完璧」というのは難しいですね。 No.4のマクロの下に、念のため下のマクロを追加してみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 27 Then Cells(Target.Row + 1, 2).Select End If End Sub

na788
質問者

お礼

ダミーの項目を設けるのですね.分かりました.

noname#187541
noname#187541
回答No.9

NO7です。 バージョンが2000の場合、シートの保護で「ロックされたセル範囲の選択」という項目はないですが、シートのプロパティに該当する項目があります。 VisualBasicEditerを開いて、該当のシートをプロジェクトエクスプローラから選びます。 プロパティウィンドウにある「EnableSelection」という項目を「1-xlUnlockedCells」にします。 こうしてからシートの保護をするとうまくいきます。 ただし、ブックを保存しても設定は保存されないので注意が必要です。 ブックを開くときにそのように設定するマクロを実行するようにしてやるといいかと思います。 該当シートがSheet1だとした場合ThisWorkbookモジュールに Private Sub Workbook_Open() Worksheets("Sheet1").EnableSelection = xlUnlockedCells End Sub と入れるといいでしょう。

na788
質問者

お礼

2000を使用する際には覚えておきたいと思います. ありがとうございました.

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.8

ANo.4様にヒントを得ました VBAを次のようにしてみて下さい Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 27 Then Cells(Target.Row + 1, 1).Select End If End Sub ANo.7様の手法が分かりやすいですが、 仰るとおり 2000では通用しませんね 自分も勉強になりました。ご両名の方有難うございました。

na788
質問者

お礼

やってみました.今度はZではなくAAで自動改行し,次のAに行きました. =27ですからAAで改行,+1,1ですから次行のAに行くのだと思います. ANo.4様に比べどのような点が良いのでしょうか? なお,未回答のEmterで右へ行く動作は同じでした.

noname#187541
noname#187541
回答No.7

エクセルのバージョンは何でしょうか?2002以降の場合の方法です。 シートの保護を利用する方法です。 まず、入力する列を選択して「セルの書式設定」の保護タブで「ロック」のチェックを外します。 ツール→オプション の編集タブで「入力後に移動する方向」を右にします。にします。 ツール→保護→シートの保護 で「ロックされたセル範囲の選択」のチェックを外します。 Enterキーで右に移動していき、最後の列でEnterキーを押すとひとつ下の行の左端(入力可能範囲で)に移動します。

na788
質問者

お礼

2002ですのでうまく行きました.マクロとロックの両方を知っておけば どのバージョンのエクセルで分業しても何とかなりそうです. Win98を使用している作業者もいますので2002以上かどうかも チェックしてみます.

  • tgn1013
  • ベストアンサー率33% (386/1137)
回答No.6

1/です。 >うまく動きました.ただ用紙を素早くめくる必要があるので, >左手のTabが結構苦しいです. 実は私もそうです。(前述のは教科書の回答です) しかも最近はExcelをあまり使わず、OpenOffice.orgのCalcという表計算を多用しています。 このソフトには前述のTab移動Enter戻り、という機能がないこともあり、 実は、予め必要範囲を指定しておき、Enterで移動(右へ)、 戻るときは、Shift+Enterで戻る、で作業することが多いです。

na788
質問者

お礼

Calcですか.個人の時は使えそうですね. 多くの場合,入力は分業なので,どのPCでも普通に使用できることが 求められています.自分だけCalcで入れて,合わせる時にエクセル にするのも不可能ではないですが,今回は同じ環境でやってみます.

  • sakura004
  • ベストアンサー率36% (4/11)
回答No.5

まずメニューの「ツール」→「オプション」をクリックし、「オプション」のダイアログボックス で「編集」タブをクリックします。「入力後にセルを移動する」項目で方向を「右」に変更します。 後は実際の入力作業のときに、入力する範囲を選択しておいて入力していって下さい。 例えば列「A~Z」行「1~40」の範囲を選択して、「A1」から順に右へ移動していけば、最後の列「Z」で改行すると「B1」へ移動します。

na788
質問者

お礼

うまくできました.ただ,アンケートの場合,入力ミスを直したく なり,矢印キーやマウスをつい操作してしまいます.すると 入力範囲が消えてしまい.一気入力もままならず.難しいところです. 範囲に名前をつけて,消えてもすぐ再指定できるようにしてみましたが, 数百件もあるとカーソル移動が大変です.

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

・Alt+F11でVBEを開いて、左のSheet1をダブルクリック(違うシートなら、アンケートを入力するシートをダブルクリック) ・右側に以下のマクロをコピーして貼り付ける。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 26 Then Cells(Target.Row + 1, 2).Select End If End Sub うまくいかなかったら、補足してください。

na788
質問者

お礼

Z=26なら次行のb=2にセルを移動するのですね. やってみたらほぼうまく動作できました. 惜しいのは,行の最後が未回答で空欄のためenter入力すると, そのまま右に抜けてしまう点です. enterは右の指定をしているので仕方ないのですね. 入力時に最後がenterの場合は少ないですから十分カバーできます.

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.3

「ツール」→「オプション」→「編集」タブの 「入力後にセルを移動する方向」を「下」に変更します。 入力中は、1セル入力ごとに「TAB」キーで右に移動し、「ENTER」キーで、最初のセルの下に移動できます。

noname#39970
noname#39970
回答No.2

同じ入力を繰り返してるなら 右の升にはtab 下に移るにはreturn 間違えて戻ったりしなければ開始した地点を基準にreturnで下に送った時に始点の下に来てくれる筈だけど・・・?(tabで横に移動してる時限定みたいだけど

na788
質問者

お礼

この「間違って」が曲者です.アンケートの回答は結構読みづらく ミスタッチならぬミス読みや読み直しが頻繁です. リターン時にありゃりゃが結構多いです.

  • tgn1013
  • ベストアンサー率33% (386/1137)
回答No.1

一セル入力したら、TABキーで次に移ります。 最終列まで行ったら、Enterしてください。 Enterキーで右に移る設定にしていたら、 ツール>オプション>編集 メニューでEnterキーの移動を下にしておいてください。

na788
質問者

お礼

うまく動きました.ただ用紙を素早くめくる必要があるので, 左手のTabが結構苦しいです.

関連するQ&A

  • アンケートデータの連続入力(行頭への改行)

    エクセルでアンケートのデータを入力しています. 1人分を1列とし、横に入力しています(A2からDB2). 1人分が終わったら,Enterキー等で自動的に次の行頭に移動 することはできないでしょうか(上記の入力の続きだとDB2からA3へ)? 現在は、カーソルキーやHomeキーで移動してますが,同じように入力を 2000人分行う為、大変しんどいです. 良い知恵をご指導下さい. 入力範囲を指定する方法もあるようですが、入力ミスを直したり、 矢印キーやマウスをつい操作してしまうと、入力範囲が消えてしまい 難しいところです.

  • エクセルです。自動改行したいんです。

    はじめまして。 例えば、A1→A2→A3→B1→B2→B3→C1・・・ と、入力を繰り返して行く場合、自動的にA3から、B1に自動改行できる方法はありませんか?CTRLキーで、入力範囲を決めるのは、すぐに解除されてしまうのでだめなんです・・・。マクロで、いい方法がありましたら、教えてください。ちなみにマクロは初心者です。よろしくお願いいたします。

  • エクセル2000で、数式が変わるのを防ぎたい。

    1 セルのA1:Z1には=A11 =B11 ・・・=Z11という式が入っています。 2 セルのA2:Z10には表の名前とか、項目名、数式が書いてあります。 3 一回目のデータの入力は、11行目A11:Z11でおこないます。 4 二回目以降のデータ入力は、11行目に、行の挿入を三回おこなってからやります。 またデータの入力は11行目でおこないます。 しかし、このとき、セルA1:Z1の=A11 =B11 ・・・=Z11という式は、=A14 =B14 ・・・=Z14に変わっていて、1行目に入力できません。 5 行の挿入はマクロでやっていますので、ここで=A14に変わった式を=A11に戻せないかどうか聞きたかったのです。 6 ここで作りたい表は、ここのサイトと同じように、新しいデータが上のほうに、古いデータが下にくるようにしたいのです。前にやったのは、データの入力の最後に必ず入力する項目があったので、そこで、マクロで11行をコピー、1行に貼り付けをやっていました。しかし、今回は、最後に必ず入力する項目もなく、また入力しないセルもあります。 7 他に、同じことができるアイデアがあったら、教えてください。 マクロの実行ボタンはすでに二個あるので増やしたくありません。 よろしくお願いします。

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

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

  • Excelでセル内改行

    お世話になります。 早速ですがExcelで複数のセルに文字列が入力されている時、それらの文字を結合する場合はCONCATENATE関数を使いますよね? で、この応用(なのか判りませんが)で例えばセルA1に"改"の文字が、セルB1には"行"の文字が入っているとき、セルC1に 改 行 と改行させて2行で表示したいのですが、セルC1に"=CONCATENATE(A1,CHAR(13),B1)"とやってもうまくいきませんでした。 Alt+Enterで手入力する以外に関数、マクロ等で何かいい方法がありますか? よろしくお願いします。

  • Excelでリスト入力時の改行方法

    エクセルで項目数が多いリストを入力します。 どんどん横に入力していった後次の行の先頭にセルを動かすのがすごく面倒なのですが、なにかよい方法はないでしょうか。 例えば、K10のセルからB11のセルに、K11のセルからB12のセルに移動できるよう移動の規則をどこかのキーに覚えこませるとか・・・ ご存知でしたら教えて下さい。 宜しくお願い致します。

  • エクセルでのセル自動クリア

    こんにちは。エクセル2000の質問です。 特定セル(以後項目セル)の入力を消した時に、関連するすべてのセル(同じ行のセル)の入力を自動的に消したいのです。 関数で自動的に計算するセルは、項目セルがブランクだったら時は「0」になるようにし、ユーザー定義で0を非表示にすることはできています。 入力する人が記入する箇所のみ、項目セルの入力を消すことでクリアしたいのです。 できればマクロを使わずに実現したいのですが、できますか? マクロ以外では不可能の場合はマクロでどうしたらよいでしょうか? よろしくお願いいたします。

  • エクセルで自動的にポインタの移動

    マクロやVBAを使わないで,A5に数値を入力した後にENTERを押すと,自動的にB1へ入力先が移動するようなことはできますか。簡単にできれば,さらに,B1からB5まで数値を入力すると自動的に入力先がC1に移動させたいのです。 今は,B5まで入力した後に,↑キーでC1までカーソルを移動させたりしています。よろしくお願いします

  • エクセルの配列関数の制限について

    エクセルの配列関数の制限について V列にX列・Y列・Z列・AA列・AB列・AC列・AE列・AG列・P列を参照した配列関数を 下のように入力しています。 {=SUM((Y$1:Y$500=F7)*(Z$1:Z$500=H7)*(AA$1:AA$500)*(P7="○"),(AB$1:AB$500=F7) *(AC$1:AC$500=H7)*(AE$1:AE$500=H7)*(AG$1:AG$500)*(P7="×"))} このY列・Z列・AA列・AB列・AC列・AE列・AG列は、ぞれぞれ200行くらいしか 文字が入力されていない場合には、配列関数の結果がうまく表示されました。 これらのセルの200行以降から300行・400行と項目を増やしていったところ、 配列関数の結果がうまく表示されないセルが出てきました。 これは、配列関数の参照するセルに制限があるということでしょうか?

  • エクセルでの改行

    エクセルでデータ入力をしています。 カーソルが右に移動する設定なのですが、 改行する度に↓と←キーを使って移動するのが手間です。 データはワンパターンなので、 全ての行の列A~Jまで数字を入力していくものです。 何か簡単に改行の設定をする方法があれば教えて下さい。

専門家に質問してみよう