• ベストアンサー

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

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

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

  • ベストアンサー
  • 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