• ベストアンサー

エクセルでのセルの移動規制について

エクセルで、A1,A2,A3,B1,B2,B3と、永遠に3行だけセルの移動をさせるにはどの様にしたらいいのでしょうか?お知恵をお貸し下さい。お願いいたします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.8

無限循環ですかー... Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Target.Row = 4 Then     Cells(1, Target.Column + 1).Activate   End If End Sub

furu1975
質問者

お礼

お返事が遅れ、申し訳ございませんでした。頂きましたアドバイスで、上手く動かすことが出来ました。本当にありがとうございます。VBAとか使う機会が全くございませんので、いい勉強にもなりました。本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

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

#6 の変更 良く確かめて、お好きなものをすればよいけれど、以下は、マクロではあっても、単に、設定するだけのマクロです。 Private Sub Workbook_Open()  'シート1 の場合  Worksheets("Sheet1").ScrollArea = Range("1:3").Address End Sub これは、IV3 までいくと、A1 に戻ります。

furu1975
質問者

お礼

お返事が遅れ、申し訳ございません。おかげさまで上手く動かすことが出来ました。本当にありがとうございます。マクロなど使う機会が少ないため、今回は、いい勉強になりました。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • keirika
  • ベストアンサー率42% (279/658)
回答No.7

(1)名前ボックスにA4:A65536と入力し、Enterを押します。 (2)メニューバーの書式>行>表示しないを選択 (3)行番号1から3を選択し、入力を始めます 再表示する場合はA列を選択し、メニューバーの書式>行>再表示です。

furu1975
質問者

お礼

お返事が遅れ申し訳ございませんでした。まだまだスキルが低く、色々アドバイスいただき、ありがとうございました。おかげさまで上手く動かすことが出来ました。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 設定の仕方は、Alt + F11 で、VB Editor 画面を開けてもらって、左上のプロジェクトのウィンドウの中の[ThisWorkbook]をダブルクリックしていただいたら、以下のコードを貼り付けていただき、ブックを一旦閉じて、開ければ設定できます。 手動でも設定できるのですが、その場合は、ブックを閉じると設定が消えてしまうので、このようにします。 Private Sub Workbook_Open()  'シート1 の場合  Worksheets("Sheet1").ScrollArea = Range("A1:B3").Address End Sub これは、#1さんの考え方と同じなのですが、完全に、他のセルにはマウスさえ触らせないようにする方法です。それは、#3さんのコードとの違いでもあります。 他のEnter イベントという方法もありますが、VBAをご存知ないと、ちょっと負担が大きすぎるような気がしましたのでやめました。

furu1975
質問者

お礼

お返事が遅れ、申し訳ございませんでした。ご解答、ありがとうございます。私がやりたかったのが、他のセルも触りつつ、循環はA1,A2、A3・・・と巡廻するものでした。皆様のおかげで上手く動かすことが出来ました。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

区域外のセルを選択しようとしたとき、どこを選択するのでしょうか。 入力後の選択は、A1->A2,A2->A3、A3->B1・・ として。 (1)セル選択の制限 (2)入力後のセル選択の移動 の2つの問題が含まれていて、VBAでSelectionChangeイベントだけでなく、Changeイベントの製薬も必要になるのかな と思います。 選択の点では Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False c = Target.Column r = Target.Row If c > 3 And r > 3 Then r = 1 c = 1 GoTo ext1 End If '--- If c > 3 Then c = 1 r = r + 1 If r > 3 Then r = 1 End If GoTo ext1 End If '--- If r > 3 Then r = 1 c = c + 1 If c > 3 Then c = 1 End If End If '---- ext1: Cells(r, c).Select Application.EnableEvents = True End Sub ただしこれが良いのか自信ありません。 #2のご回答の機能+区域がいの処理です。

furu1975
質問者

お礼

お礼が遅れて申し訳ございません。早々のご解答ありがとうございました。 なかなかVBAって難しいものですね。うまく解決することができました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.4

s_husky です。 Sheet1 の A1->A2->A3->B1->B2->B3->A1->A2・・・という循環移動を実現するには、 1、Sheet1 のタグを右クリック->コードの表示(V)を選択。 2、(General)->Worksheet に変更。 3、Worksheet_SelectionChange(ByVal Target As Range)にコードをコピーします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) (ここに、 IF-End If までのコードをコピー) End Sub 以上で、循環移動が実現できます。

furu1975
質問者

お礼

ご解答ありがとうございます。上手く動きました!ただ、私がやりたいことなんですが、A1->A2->A3->B1->B2->B3->c1->c2->c3->d1->d2->d3->という循環を実行したいのです。なにかいいお知恵はないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.3

Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Target.Row = 4 Then     If Target.Column = 1 Then       Cells(1, 2).Activate     ElseIf Target.Column = 2 Then       Cells(1, 1).Activate     End If   End If End Sub ※Excel の操作経験がないので、こんな回答しか思い付きません!

furu1975
質問者

お礼

早々の回答ありがとうございます。VBAですね。私自身、VBAを使ったことがないので。。。どのように使ったらいいのでしょうか?よろしければお教え下さい

全文を見る
すると、全ての回答が全文表示されます。
noname#16474
noname#16474
回答No.2

1、2、3の行を選択した状態で入力します エンターキーを押すたびにご希望の順で入力できます

furu1975
質問者

お礼

早々の回答ありがとうございます。お教えいただいたやり方だと、私のやり方が悪いのかも知れないのですが、入力ができないんですがなにか方法があるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

1:3行を選択した状態で、[書式]-[セル]-[保護]の[ロック]をOFF。 [ツール]-[保護]-[シートの保護]の 「ロックされたセル範囲の選択」をOFF。 (Excel2003で確認)

furu1975
質問者

お礼

早々の回答ありがとうございます。 私のやり方が悪いのかも知れませんが、お教えいただいたやり方だと、ずっと、A1が起点になってしまうようなんですけど、他に設定することが必要なんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのセルのデータの移動について教えてくださ

    Excelの文書名(A)の「シート見出し3」のセルA1のデータを、デスクトップのExcelの文書名(B)のセルA1移動できるでしょうか。 もし、できる場合、文書名(B)に既に6行分のデータが存在しているときはセルA7に移動あるいは、既に7行分のデータが存在しているときはセルA8に移動できるでしょうか。 お教え頂けたら幸いです。よろしくお願いいたします。

  • EXcelでセルを移動

    EXCELでセルを移動させるにはどうすればいいでしょうか。教えてください。(A1のセルをB2へ移動させる) 例) A1セル 5678  A2セル 1234  ⇒ A2セル  B2セル              1234 5678 移動したいセルの量がかなり多いので単純に移動したいセルを指定してドラッグして移すのが大変なんです。 よろしくお願いします。

  • エクセルのセルの移動について

    言葉では表現しづらいのですが、精一杯お伝えしますので、汲み取ってください。^_^; ここでは仮にエクセルのワークシート上で『A1~C3』までの3行3列の表を作るとします。 通常、連続したデータを入力していく場合は、A1に入力後、タブキーで右にひとつ移動してB1のセルに任意の入力を行い、更にひとつ右のセルにタブキーで移動し、入力が済んだらC1で改行(エンター)で自動的にA2にセルは移動しますよね? これを縦横(行列)逆の考えで、A1に入力後、改行(エンター)キーでA2にセル移動、更に改行でA3に移動し入力が済んだら『自動(エンターキーの操作くらい)でB1セルに移動したい』のですが、どのような方法がありますか? 左手がデータの用紙をめくることでふさがっておりますので、できれば右手(テンキー)だけで出来る操作で何とかならないものかと思っています。 よろしくお願いします。

  • Excel 入力セル移動方法

    Excel 入力セル移動方法の質問です。 セルA5からA10まで入力した後、Enterキーだけで、セルB5まで移動させる設定方法はありますか? (行5から10をA・B・Cと移動したい) 入力範囲をドラッグする方法以外の方法がありましたら、教えて下さい。

  • エクセル/参照したセルの移動

    エクセル2003を使っています。 シート1のセルをシート2で参照しているのですが、シート1で並び替えをすると参照元を追ってくれません。 例えばシート1に製品名と値段の表があって、シート2にある製品名●●と値段を参照したいとします。 シート1   A   B 1 ●●  2,000 2 ☆☆  3,000 シート2   A   B 1 ●● 上記のような場合、シート2のB1セルに「='シート1'!B1」と入力しました。そうするとB1セルに2,000と表示されるまでは良いのですが、シート1で並び替えをした際、●●製品が10行目に移動してしまうとシート2のB1セルには1行目に移動した他の製品の値段が出てしまいます。 シート1で並び替えをしたら、シート2でも●●製品の値段が追えるようには出来ないでしょうか? 何か良い方法があれば、教えて下さい。どうぞよろしくお願いいたします。

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

  • Excel 条件に従いセル移動するには

    よろしくお願いいたします。 A列には入力したくない行に"a"が入力してあるとします。 B列に上の行から数値を入力していくのですが、数値を入力してEnterを押すと次のA列に"a"が入力されていない行のB列セルに移動するVBAを教えてください。

  • Excelでセルを次の行の先頭の列に移動させる方法を教えてください。

    Excelでセルを次の行の先頭の列に移動させる方法があれば教えてください。 例えば、A1、B1、C1と順に入力し、C1のセルでEnterキーを押すと次の行の先頭列A2に入力セルが移動されるといった場合です。

  • エクセル2010 セルの移動設定について

    エクセル2010を使用しています。 入力するセルを2列(A,B)に限定し、A1入力後→Enter→B1に移動→Enter→A2に移動と、 右移動、左下移動のVBAまたは、設定を教えてください。

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

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

このQ&Aのポイント
  • vbaを使用して、ユーザーフォームとテキストボックスを組み合わせたフィルタリング処理を行っています。しかし、オブジェクトエラーが発生しています。なぜエラーが発生するのでしょうか?
  • また、他にも改善点がありましたら指摘していただけると幸いです。
  • ご協力をお願いいたします。
回答を見る

専門家に質問してみよう