- 締切済み
Excelでのカーソルのジャンプについて
シートAに「あ」「い」「う」・・・のようなボタンを作っています。(メニュー画面のような感じで) 同一BOOKのシートBには、A列に読み仮名、B列に名前の一覧があります。 シートBは下記のようになっています。 < 通常の状態 > < ボタン押された後の状態 > A列 B列 A列 B列 あ 青木 う 梅津 あ 秋山 え 江藤 い 石松 ⇒ お 小川 い 池田 う 梅津 え 江藤 お 小川 シートAで「う」のボタンが押された時に、シートBの 「う 梅津」の行にカーソルが位置づけされて、この行がシートの1行目に表示されるようにしたいのですが、方法はありますでしょうか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 Sheet1のセルをダブルクリックすると質問にあるような動きになるようなVBAです。 Sheet1・Sheet2の配置は↓の画像のようになっているものとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストして、Sheet1のA列をダブルクリックしてみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から Dim i As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") '←「Sheet2」の部分は実際のSheet名に! Cancel = True ws.Rows.Hidden = False If Target.Column = 1 Then If WorksheetFunction.CountIf(ws.Columns(1), Target) Then i = WorksheetFunction.Match(Target, ws.Columns(1), False) If i > 2 Then ws.Rows(2 & ":" & i - 1).Hidden = True End If End If End If ws.Activate ws.Cells(i, 1).Select End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m
- end-u
- ベストアンサー率79% (496/625)
マクロを使った方法..で良いのですよね? Dim r As Range Set r = Sheets("シートB").Columns("A").Find(What:="う", _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlNext) If Not r Is Nothing Then Application.Goto Reference:=r, Scroll:=True Set r = Nothing End If Findメソッドを使って検索し、見つかったらGotoメソッドでジャンプします。 簡易的に On Error Resume Next Application.Goto Sheets("シートB").Columns("A").Find("う", , xlValues, xlWhole, xlByColumns, xlNext), True とも書けます。
お礼
大変遅くなり申し訳ありませんでした。 何とか出来るようになりました。 ご回答ありがとうございました。御礼申し上げます。
お礼
大変遅くなり申し訳ありませんでした。 何とか出来るようになりました。 大変ご丁寧にご回答をありがとうございました。 御礼申し上げます。