[[20040127170335]] 『入力後のセルへの移動を自分で決める方法』(さんきち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力後のセルへの移動を自分で決める方法』(さんきち)

 A1に店名  B1に製品NO C1に納品日 A3に店コード  A5に担当者 とします
 A2にああ  B2に1234  C2に1/26   A4に123-001  A6に山田と自分で入力します。
        
入力出来るセルは A2・B2・C2・A4・A6として
エクセルを開いたときカーソルがA2にあり、A2入力後 A4の入力待ちになり、
A4入力後 B2の入力待ちになり、B2入力後 C2入力待ちになり、C2入力後 A6
入力待ちになり、A6入力後 A2に帰ると言うふうに出来るでしょうか。

A2→A4→B2→C2→A6→A2と自分で決めた順番に入力出来る様に出来るでしょうか、
教えて下さい。お願い致します。


 過去に類似の質問はいっぱいありますが、↓など、どうでしょう。
[[20030914165400]] 『タブオーダーの設定』(マオ)
 (YS)

 YSさんヨコからごめんやで。今日は良う衝突しまんなぁ。

 でけまっせぇ。
 マクロを使えばの話ですけどナ。
 いっぺん試しにやってみまっか?
 二度手間にならんように、ゆっくり確認しながらやっておくんなはれや。

 「Alt」+「F11」でVBAを開きます。
 左のプロジェクトエクスプローラに「ThisWorkbook」ッちゅうんが在るはずですです
 から、そこをダブルクリックしておくんなはれ。
 真っ白なシートモジュールが表示されまっしゃろ?
 そこへ一つ目の'---------から2本目の'-----------までをコピペしておくんなはれ。
 線は入っとっても別状無いようにしてありますさかい、気ぃにせんでもよろしいで。

 終わったら「挿入」→「標準モジュール」を選択して
 これも真っ白なコードモジュールを表示して下さい。
 そこへ2本目の'---------から最後の'-----------
 までのコードをコピペしておくんなはれ。

 旨い事でけましたか?
 ほしたら「Alt」+「Q」でエクセルに戻ってくだはい。
 保存して一旦ブックを閉じまひょか。

 そのブックを開いてみてください。勿論マクロ有効ででっせ。
 どうでっか?A2にポインターが行ってまっしゃろ?何か入力してみてくだはい。
 お望み通りのセルにカーソルが移動してますやろ?
 このマクロはエンターキーに(矢印キーは動かないようにしてます)作業を分担する
 ようにしてありますが、アンさんの指定した範囲以外はカーソルは普通に動きます。
 また当該ブックを閉じる時にそのキーは元の正常な設定に戻るようにしてあります。

 なにはともあれ、やってみんことにはなぁ。
    ほな(弥太郎)
 '-------------------
 Private Sub Workbook_Open()
    Range("a2").Select
    skip
 End Sub
 '-------------------
 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Application.OnKey "~"
    Application.OnKey "{enter}"
 End Sub

 '-----------------------
 Sub skip()
    Application.OnKey "~", "macro"
    Application.OnKey "{enter}", "macro"
 End Sub
 '---------------------
 Sub macro()
    Select Case ActiveCell.Address(0, 0)
        Case "A2"
            Range("a4").Select
        Case "A4"
            Range("b2").Select
        Case "B2"
            Range("c2").Select
        Case "C2"
            Range("A6").Select
        Case "A6"
            Range("a2").Select
        Case Else
            ActiveCell.Offset(1, 0).Select
    End Select

 End Sub
 '-------------
 Sub stop_skip()
    Application.OnKey "~"
    Application.OnKey "{enter}"
 End Sub

 ちょうどよかった。弥太郎さんかINAさんが見ててくれるといいなぁと思ってたところです。
 私はマクロはど^2素人なもので、自動記録をちょっといじって
 ↓こんなの作ってみました。一応目的は果たせると思うんですが…
 移動はTab又はEnter、Shiftを押しながらTab又はEnterで一つ前に戻ります。
 Private Sub Worksheet_Activate()
     Range("A2,A4,B2,C2,A6").Select
     Range("A2").Activate
 End Sub
 (YS)

 (さんきち)さん他、色々な方の質問、回答に全く関係無く横から御免なさい。
 久しぶりにこの掲示板を見に来て懐かしい弥太郎さんの独特のカキコを見て思わず
 カキコしてしまいました。御免なさい・・・。
 弥太郎さん、お久しぶりです。
 弥太郎さんに無二の親友と言って頂いた幸せ者の(イエローヒロ)です。
 遅くなりましたが、明けましておめでとう御座います。
 昨年中は色々とお世話様になりました。
 今年も何卒、宜しくお願い致します。
 今年も又、弥太郎さんを追っかけて?レッドヒロに変身するかも知れませんが何か
 このサイトに嵌ってしまったので御容赦を!
 今年は少しでも弥太郎さんと為口を聞ける様にエクセル(マクロ)の習得に頑張る
 所存で居りますので見納め役を買って下さいね。
 何卒何卒、宜しく御指導の程お願い申し上げます!(イエローヒロ)

 ちょっとヒロさん、長い事顔見せんでどないしてはったん!?
 たしか(YH)ってHNで私を冷やかしてくれたんはアンタでっしゃろ?
 丁度阪神が優勝を決めた日でしたなぁ。
 それにしても良う帰ってきてくれましたワ、ホンマ、嬉しいでぇ。
 為口でっか?アンさんやったら何を言うてもかめしまへん、えぇ。
 それはそうと、もうその「イエローヒロ」は止めまひょいな。その冠かぶせたんは紛れ
 もない私ですさかいなぁ、懐かしいと同時になんや、こう、胸が痛みますワ。
 そうしてえな、な、お願いやから。
 よしっ!決まった!!今日からあんたは「ヒロ」でっせ、な、よろしおまっしゃろ!

 アンタ居らなんだら私ゃいつまで経っても「Black List No1」の座から降りられ
 しまへんわ、ホンマに。やれやれ。(笑)

 お〜い、みなさ〜ん、「ヒロ」さんが一儲けして帰ってきたで〜っ!
 また以前同様かわいがっておくんなはれや〜っ!
   今宵は気分良く寝られそう(弥太郎)

 弥太郎さんYSさん有難う御座いました、弥太郎さんのマクロを登録して(マクロ初体験)
 OKでした、このマクロがあれば、色々応用でき素晴しいです、まだまだ基礎の勉強中
 なのでマクロは??だったので感動しました。また何かありましたら、宜しくお願い
 致します。(さんきち)


  簡単な事だと思うんですが、もう一つ質問します。
 先程使用した、マクロ少し変更してsheet2にも登録して使う方法も教えて下さい。
 お願いします。(さんきち)

  ほんならねぇ、今度はシートモジュールにコピペします。
 前回にも申し上げたようにゆっくり確認しながらやっておくんなはれや。
 慌ててやり損ねて「動かん」言う御方がしばしば居てまんねんで、えぇ。(笑)

 VBEの開き方はおわかりでっしゃろ?
 左のプロジェクト欄のSheet1を選択して「F7」を叩いて下さい。
 下のコードをコピペして下さい。
 次はSheet2を選択して「F7」です。
 同じく下のコードをコピペです。
 「Alt」+「Q」でエクセルに戻って準備完了ですワ。
 後はSheet1〜2を行き来して試しておくんなはれ。旨い事いくはずですワ。
   ほな・・(弥太郎)
 '---------------
 Private Sub Worksheet_Activate()
    Range("a2").Select
    skip
 End Sub
 '----------------


 素晴しいです!上手く行きました、甘えついでに、Sheet2に違うマクロを反映したい場合
 はどうすれば良いですか?(sheet1と入力出来るセルを変更する場合)ぜひお教え下さい。
 例えば sheet1 A2→A4→B2→C2→A6→A2と移動
     sheet2 A2→B2→C2→D2→E2→A2と移動
 お願い致します。(さんきち)

 前のmacroを削除
 代わりに下のコードを挿入
 '-------------------
 Sub macro()
    Select Case ActiveCell.Address(0, 0)
        Case "A2"
            If flag = 1 Then
                Range("a4").Select
            Else
                Range("b2").Select
            End If
        Case "A4"
            Range("b2").Select
        Case "B2"
            Range("c2").Select
        Case "C2"
            If flag = 1 Then
                Range("A6").Select
            Else
                Range("d2").Select
            End If
        Case "D2"
            Range("e2").Select
        Case "E2"
            Range("a2").Select
        Case "A6"
            Range("a2").Select
        Case Else
            ActiveCell.Offset(1, 0).Select
    End Select

 End Sub
 '--------------
 Function flag() As Integer
    If ActiveSheet.Index = 1 Then
        flag = 1
    ElseIf ActiveSheet.Index = 2 Then
        flag = 2
    End If
 End Function
 '---------------
 これでどないでんねん。
    All End(弥太郎)

 (さんきち)さん
 またまた、質問に全く関係無い内容で横からこんなレスを立てて本当に御免なさい。
 ちょっと懐かしくって弥太郎さんとピンポンしたかったので。
 この行為自体が全くレッドカードものだと思いますが・・・。
 弥太郎さん、早速の返信レスを有難う御座います。
 合いも変わらずの独特の暖かい励ましのお言葉有難う御座います。感激です!
 後で自分のレスを読み返して「弥太郎さんと為口聞ける様に・・・頑張る」なんて
 書きましたが、為口聞くには何十年掛かるかと自分の軽口に今更ながら恥ずかしい
 思いをしています。
 質問、回答レベルは別として弥太郎さんを「Black List No1」の座から外す様に
 誠意努力しますので御勘弁を。
 HNの件ですが「ヒロ」は調べたら過去にもその後にも同じものが有るので、今後は
 「ヒロヒロ」で行きたいと思いますのそんなレスを見付けたら私だと思って下さい。
 近い内に「レッドヒロヒロ」になれるように弥太郎さんを見習います。
              ↑
 (御免なさい、これでも充分「レッドヒロヒロ」の資格は充分ですね・・・。)
 いずれにせよ今後とも弥太郎さん始め皆様方、何卒宜しくお願い申し上げます!


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.