アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのVBAでユーザーフォームに数値を入力してセルを選択することは可能でしょうか?
例えば、列はAに固定していいのですが、ユーザーフォームに「123」と入力してボタンを押せば「A123」のセルがアクティブになるようなユーザーフォームを作成したいのですが方法がわかりません。
よろしくお願いします。

A 回答 (3件)

Private Sub CommandButton1_Click()


'テキストボックスが空の時は何もしない
If Me.TextBox1 = "" Then Exit Sub

'テキストボックスが数字以外だったら注意メッセージ表示でExit Sub
If IsNumeric(Me.TextBox1) = False Then
MsgBox "数字を入力してください", vbExclamation
Exit Sub
End If

'A列の指定されたセルを選択後、ユーザーフォームを閉じる
Range("a" & Me.TextBox1).Select
Unload Me
End Sub

エラーが起きないようにちょっと書き換えてみました。
    • good
    • 0
この回答へのお礼

ありがとうございます、早速使用させて頂きました。これで無事問題が解決しました。

お礼日時:2005/03/08 17:06

こんにちは。



ご希望の機能はユーザーフォームを作成しなくても、数式バーの左にある小さなボックスで可能ですが、ユーザーフォームで行う場合のサンプルです。

ご希望の動作に若干機能を追加しています。

・A1 や E1 などセルのアドレスとして有効な文字列であれば、そこにジャンプ
・数字であれば、定数で指定した列の行へジャンプ

TEXTBOXに入力されたものが数値の場合、IsNumericで数値であるチェックを行うだけではエラーが発生する可能性があります。例外処理として、Intで小数点以下を無効にしておいたり、数字の有効範囲のチェックも必要でしょう。

機能的にはシンプルですがコードが長いのは、コメントを数多く入れてあるからです。

【前提】
ユーザーフォーム内の配置コントロール
・TEXTBOX1
・CommandButton1

【以下VBAコード 場所:ユーザーフォーム】(次行から終わりまで)

Private Sub CommandButton1_Click()

  '列名が省略された場合に移動する列
  Const cstCol = "A"

  Dim Sh As Worksheet
  Dim TargetCell As Range

  'TEXTBOXコントロールの値
  strParam = Me.TextBox1.Text
  '処理対象はアクティブシート
  Set Sh = ActiveSheet

  'セルアドレスとして有効ならば
  On Error Resume Next
    Set TargetCell = Sh.Range(strParam)
  On Error GoTo 0
  If Not TargetCell Is Nothing Then
    TargetCell.Select
  '数字であれば
  ElseIf IsNumeric(strParam) Then
    '小数点以下はカット
    RowNum = CLng(Int(strParam))
    '数字で1~65536の範囲であれば
    Select Case RowNum
      Case 1 To 65536
        '定数を補完してセル選択
        Sh.Cells(RowNum, cstCol).Select
      Case Else
        '数字の有効範囲外であればトラップ
        GoTo ExitHandler
    End Select
  End If
  Application.Goto Reference:=ActiveCell

ExitHandler:
  Set TargetCell = Nothing
  Set Sh = Nothing

End Sub
    • good
    • 0
この回答へのお礼

早速使用させて頂きました。細かな回答ありがとうございます。

お礼日時:2005/03/08 17:04

Private Sub CommandButton1_Click()


If Me.TextBox1 = "" Then Exit Sub
Range("a" & Me.TextBox1).Select
End Sub

こんな感じでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!