[[20150414111607]] 『カーソルが指定順に移動しない』(三輪車) ページの最後に飛ぶ

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

 

『カーソルが指定順に移動しない』(三輪車)

シートの保護を利用せず、カーソルを指定順に移動する方法を
試したのですが、従来通りで順番に移動しません。

Ctrlキーを押したまま Enterキーでセルを希望の順番(2番目のセルから)
にクリック、最後にスタートするセルC1を選択し、数式バーの
左の名前ボックスをクリックして任意の名前 "入力タブ順"を付ける。

最初のセルC1を選択すれば、名前ボックスに "入力タブ順"としっかり
表示されるのですが、Enterキーを押してもカーソルは従来通り下に
動くだけです。

これがうまく行けば、下記のコードでシートを開けば、、
名前ボックスから "入力タブ順"を選択しなくても、
自動的にカーソルが入力指定順に移動してくれると思うのですが、
その前の段階でつまずいています。よろしくお願いします。

Private Sub Worksheet_Activate()

If ActiveSheet.Name = "入力" Then

    Worksheets("入力").Range("C1").Select
                                '設定したタブ順でカーソル移動
    Application.Goto Reference:="入力タブ順"

End If
End Sub

< 使用 Excel:Excel2007、使用 OS:Windows8 >


 シートイベントであれば、シートの指定や判定は不要と思いますが、下記だけではダメですか?

 Private Sub Worksheet_Activate()
    Range("入力タブ順").Select
 End Sub

(Mook) 2015/04/14(火) 11:41


MOOK 様

ありがとうございます、 希望通りとなりました。

Rangeの使い方で、Range("入力タブ順")のような書き方があるとは夢にも

思いませんでした。VBA歴わずか3ヶ月、本は10冊以上軽くサラッと

眺めましたが、セル番地以外の記述は一度も見かけたことはありません。

(三輪車) 2015/04/14(火) 12:52


 2007のVBAヘルプで「Rangeプロパティ」(Range.Rangeプロパティ、Worksheet.Rangeプロパティ、Application.Rangeプロパティのどれでも)
 の説明で

 >次の使用例は、"TestRange" という名前の範囲に対してループを行い、範囲内の空のセル数を表示します。

 >Visual Basic for Applications 
 >numBlanks = 0
 >For Each c In Range("TestRange")
 >   If c.Value = "" Then
 >       numBlanks = numBlanks + 1
 >   End If
 >Next c
 >MsgBox "この範囲内には " & numBlanks & " 個の空のセルがあります。" 
 という例が記されている。

(ねむねむ) 2015/04/14(火) 13:02


ねむねむ 様

わかりやすく具体例を挙げていただきありがとうございます。

Range("   ") で、 "   " の中にはセル範囲を意味する

名称も入れることができるわけですね。

(三輪車) 2015/04/14(火) 13:14


コメント返信:

[ 一覧(最新更新順) ]


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