' [060.xls] ' [Module1] のコード '★★☆ 指定されたセルを画面左上端にスクロールする ☆★★ Option Explicit Sub start() UserForm1.Show End Sub Sub start_A() Sheets("作業シート").Visible = -1 Sheets("Title").Visible = 2 End Sub Sub start_B() Sheets("Title").Visible = -1 Sheets("作業シート").Visible = 2 End Sub ' [UserForm1] のコード Option Explicit Dim i As Integer Private Sub CommandButton1_Click() Dim mycol As String Dim myrow As String '入力された文字を組み合わせて、セルアドレスを作り 'テキストボックスに入力されているかチェック mycol = TextBox1.Text myrow = TextBox2.Text If mycol = "" Or myrow = "" Then Exit Sub 'Goto Range(セルアドレス)の引数に True を指定すると 'そのセルアドレスが左上になるようにスクロールする Application.Goto Range(mycol & myrow), True TextBox1.SetFocus End Sub Private Sub TextBox1_Change() 'エラーに飛んだときにもう一度 Changeイベントが発生するのを防ぐ If TextBox1.Text = "" Then Exit Sub '数値が入力されたら err_cols へ飛ぶ For i = 1 To Len(TextBox1.Text) If IsNumeric(Mid(TextBox1.Text, i)) Then GoTo err_cols Next i 'エラーが発生するとerr_colsへ飛ぶ On Error GoTo err_cols '入力された文字を列名と仮定して、1と組み合わせたセルアドレスに 'そのアドレスが実在するかテストしてみる Range(TextBox1.Text & 1) = "" '実在すれば何もしないでマクロを抜ける Exit Sub 'アドレスが実在しなければここへ飛んできて '入力された文字を消してしまう err_cols: TextBox1.Text = "" End Sub Private Sub TextBox2_Change() 'エラーに飛んだときにもう一度 Changeイベントが発生するのを防ぐ If TextBox2.Text = "" Then Exit Sub '数値でないものが入力されたら err_cols へ飛ぶ For i = 1 To Len(TextBox2.Text) If Not IsNumeric(Mid(TextBox2.Text, i)) Then GoTo err_rows Next i 'エラーが発生するとerr_rowsへ飛ぶ On Error GoTo err_rows '入力された文字を行番号と仮定して、Aと組み合わせたセルアドレスに 'そのアドレスが実在するかテストしてみる Range("A" & TextBox2.Text) = "" Exit Sub err_rows: TextBox2.Text = "" End Sub Private Sub UserForm_Initialize() Label1.Caption = "列(例 B)" Label2.Caption = "行(例 5)" TextBox1.IMEMode = 2 TextBox2.IMEMode = 2 End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'スクロールしている画面を元に戻す [A1].Select End Sub