• 締切済み

エクセルでセルの選択をしたい。

例えば、シート1があって、通常、セルA1にカーソルポイントがあるとすると、キーボードのENTERを押すとカーソルが下にいきますけど、これをA1の次はC3、その次はAA56、その次はB4とキーボードのENTERを押すたびに変えることはできませんか?どんな方法でもいいです。お願いします。

みんなの回答

noname#204879
noname#204879
回答No.4

[No.1回答に対する補足]に対するコメント、 Enterキーの代わりに Tabキーを押せば、非保護セルを移動するけど、最初のセルから右方向、かつ、下方向に移動するのはご存知かと。 お示しの例だとその規則に反するので、マクロを使わない限り、実現できないのではなかろうかと。 ただし、私はマクロ音痴なので悪しからず…

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

こんばんは。 ご質問は定番なのですが、私の場合は、以下のようにします。 これも、一種のイベントです。エンターキーにインスタンスを設けてやるわけです。 多少、まだ、私が気が付かないで、抜け落ちている部分があるかもしれません。十分にテストされておりませんので、とりあえず、ユーザー設定の部分をご自身で入れてみて、 最初に、「SetKeys」を実行するか、もしくは、保存して、もう一度、そのブックを立ち上げれば、設定されますので、試してみてください。 '標準モジュールへ '-------------------------------------------------- Option Explicit 'キーの設定(ユーザー設定) Private Const MYKEYS As String = "A1,C3,AA56,B4" Private myKeyAr As Variant 'キーを格納する配列変数 Sub SetKeys()   '設定用   Application.OnKey "~", "ReturnDirectrion2Cell"   Application.OnKey "{Enter}", "ReturnDirectrion2Cell" End Sub Sub SetOffKeys()  '解除用  Application.OnKey "~"  Application.OnKey "{Enter}" End Sub Private Sub ReturnDirectrion2Cell()  Dim i As Long  Dim myAdd As String  Dim NextAdd As String  '変数の確保をチェック  If IsArray(myKeyAr) = False Then   myKeyAr = Split(MYKEYS, ",")  End If  '除外条件  If ActiveSheet.Name <> "Sheet1" Then    ActiveCell.Offset(1).Select    Exit Sub  End If    myAdd = ActiveCell.Address(0, 0)  For i = LBound(myKeyAr) To UBound(myKeyAr)   If StrComp(myKeyAr(i), myAdd) = 0 Then    If i < UBound(myKeyAr) Then     NextAdd = myKeyAr(i + 1)     Exit For    Else     NextAdd = myKeyAr(0)    End If   End If  Next i  If NextAdd <> "" Then   Range(NextAdd).Select  Else   Range(myKeyAr(0)).Select  End If End Sub '-------------------------------------------------- 'ThisWorkbookへ Private Sub Workbook_Activate()  '別のブックから、このブックへ来た場合  Call SetKeys End Sub Private Sub Workbook_Deactivate()  '別のブックを作業している時   Call SetOffKeys End Sub Private Sub Workbook_Open()  '開けたとき  Call SetKeys End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  '閉じる前  Call SetOffKeys End Sub '-------------------------------------------------- p.s. 本来は、この「For i = LBound(myKeyAr) To UBound(myKeyAr)」ループは、ワークシートのMatch 関数が、ずっと便利なのですが、訳があって、その方法はやめています。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

ENTERのかわりにTabキー(→|)でそうなりませんか?

noname#204879
noname#204879
回答No.1

それって何か規則的な順序になっていますか? それとも自分がそのときに念じた無作為な順序なのですか?

19760101
質問者

補足

説明不足ですいません。例えば、シート全体に保護がかかっていて、保護のかかっていないセルA1、B3、AA2とキーボードのENTERを押せば順にそのセルに移動したいのですが。

関連するQ&A

  • エクセルでセルを順番に選択したい。

    例えばキーボードのENTERを押すたびに、A1→C5→Z9→B22→A1とセルの選択移動をしたいのですが、VBAで何かありませんか?お願いします。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • ELCELでセル移動方法を変えたい

    セル移動方法を変えたいのですが   A   B   C   D 1■■■ 2 3 通常A1にカーソル合わせてENTERおすとA2に移動しますよね これをB1に移動するようにしたいんですが、解りますか? 順番的にA1→B1→C1→A2→B2→C2→・・・・・・としたいのです よろしくおねがいします

  • セルの選択、貼り付け

    よろしくお願いします。 次のような処理をするプログラムを書きたいのですが、うまく書けません。教えてください。 (処理) 1つのExcelファイルの中で、sheet1A列のセルの値と同じ値を有するセルがsheet2A列にある場合、当該行のB列の値をsheet1のセルに貼り付ける。   (前) 〈sheet1〉       〈sheet2〉            A  B …       A  B …              1 c1           1 c1 200   2 b2           2 a1 300   3 d5           3 b3 500            :              4 b2 400                 5 d5 500                           :   (後) 〈sheet1〉                A  B …           1 c1 200     2 b2 400      3 d5 500    :            

  • セル移動の設定

    エクセルマクロがわからない初心者です。 エクセルシート「sheet1」のセルA2で(データ入力、または入力せずに)「Enter」を押した後、A5に移動させたいのですが、カーソルでA1からA2を通りA6にカーソルを移動させてもセルが飛ばない(A6からA1に下から移動させても同様に飛ばない)ようにしたいのですが、何かよい方法はありませんか教えてください。

  • Excel 離れたセルにカーソルを移す方法

    私の使ってるシートでは入力すべき箇所がセルB3、G7など離れた位置にあります。セルB3で入力した後Enterを押すと次にG7へカーソルを移すことってできますでしょうか? いちいちマウスで次の箇所をクリックしたり、→キーで移動したりするのが面倒です。お願いします。

  • excelのセルの移行について。

    2点あるのですがどうぞよろしくお願いします。 ・セルを入力後、アクティブセルをenterを1度押しただけで移動するようにするにはどのように設定したらいいのでしょうか? 初めはそのように設定されていたらしくそのままできたのですが、コメントを入れた途端セルを入力してenterを2度押さないと移動しなくなってしまいました。 ・A1~A10まで打った後に自動的にB1が選択し、またB10まで打ったらC1が選択されると言った様に、あるとこまで打ったら次の列の先頭のセルが選択されるようにするにはどのようしたらよいでしょうか? お手数ですが回答お願いします。

  • Excelでセルを2行に

    通常、Excelで1セルを2行にしたいときには、ALT + Enter を入力しますよね。 今回は、2つのセルに入っている文字列を1セルにまとめて2行に表示したいのですが… つまりA1に入ってる「OK」とB1の「Wave」をC1セルにまとめるときは  「=A1&B1」ですが、「OK」と「Wave」を2行にしたいのです。 おそらく「=A1&????&B1」という形で、????の場所にALT + Enter に相当する何かを入れるのだろうとは、思うのですが… よろしくお願いいたします。

  • エクセルで消えないセルを作りたい。

    よろしくお願いします。 エクセルで、例えばB2のセルに「aa」、B3のセルに「bb」と入力したとします。 そして、A1からC3まで範囲選択をしてDeletをおしてもB2のセルの「aa」だけは消えないようにすることは可能でしょうか? エクセルは2000です。

  • エクセルVBAでコマンドボタンを選択したい。

     すいません。私はエクセルのVBAが初心者なのですが、例えば、sheet1にコントロールツールのコマンドボタン1があるとして、いまセルA1が選択されている状態の時、キーボードの"Enter"を押すと、通常はセルA2が選択されるところを、コマンドボタン1を選択するようにしたいのですが、なにかいい方法はありませんか?よろしくお願いします。

専門家に質問してみよう