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

いつもお世話になります。
次々とシートを追加していくブックがあります。
Sheet1にマクロボタンを作成して、例えばSheet1のA1に「5」と入力すればSheet5が、「8」と入力すればSheet8が、開くようにしたいのですがそのようなマクロは可能でしょうか?
(シートのハイパーリンクを利用した目次ではありません。)
初心者ですがよろしくお願いします。

A 回答 (4件)

こんにちは。



私もフォーム・ボタンにしてみました。フォーム・ボタンは、マクロの設定が自動で出来るからです。ボタンを付けたら、「ボタン作成」のマクロは、削除して構いません。
両方とも、「標準モジュール」に登録してください。

現在は、ボタンは、Sheet1 の H1 につけるようになっています。

'<標準モジュール>
Sub ボタン作成()
 Dim Lp As Double, Tp As Double, Wd As Double, Ht As Double
 '
 Const ボタン場所 As String = "H1"
 With Worksheets("Sheet1")
  .Select
  With .Range(ボタン場所)
  If Not IsEmpty(Range(ボタン場所).CurrentRegion) Then _
  MsgBox "空いている場所に設定してください": Exit Sub
  Lp = .Left: Tp = .Top + 1: Wd = .Width: Ht = .Height * 2
  End With
  With .Buttons.Add(Lp, Tp, Wd, Ht)
   .OnAction = "ジャンプ"
   .Caption = "ジャンプ"
   .Visible = True
  End With
 End With
End Sub

'-------------------------------------------------
'<標準モジュール>
Private Sub ジャンプ()
 Dim num As String
 With Worksheets("Sheet1")
  If IsEmpty(Range("A1")) Then
   MsgBox "シート番号を、A1 に入力してください", vbInformation
   Exit Sub
  End If
  num = StrConv(Range("A1").Value, vbNarrow)
  On Error Resume Next
  Application.Goto Worksheets("Sheet" & num).Range("A1")
  If Err() > 0 Then
   If Err.Number = 9 Then
    MsgBox "シートが見つかりません。", vbCritical
    Exit Sub
    Else
    '非表示シートに対して、こういう反応があります。
    MsgBox "シートにアクセスできる状態ではないようです。", vbCritical
   End If
  End If
  On Error GoTo 0
  num = vbNull
 End With
End Sub
    • good
    • 0
この回答へのお礼

詳細なご回答大変ありがとうございました。
完璧にできました。

お礼日時:2005/07/05 16:58

こちらの利用は初めてです。

どうぞよろしく。
ほかの方も回答されていますが、自分のも参考にどうぞ。

手順:
1.マクロ用のボタンをフォームツールバーから1つ作ってください
2.ツールバーはツールバーの上で右クリックし、フォームを選んでください
3.表示されたツールバーからボタンを選択し、適当なところへ配置します
4.「マクロの登録」ダイアログが表示されたら新規作成を押し、以下のコードを貼り付けます
5.フォームツールバーを閉じます
6.セルA1に適当な番号を入力します
7.ボタンを押します

入力するコード:
Sub ボタン1_Click()
' Sheet1のA1セルに入力された番号のシートに切り替えます
Dim SheetName As String

On Error GoTo ErrMsg ' シート切り替えに失敗したときのメッセージ

SheetName = "Sheet" & StrConv(Sheets("Sheet1").Range("A1").Value, vbNarrow)

Sheets(SheetName).Activate ' 該当するシートに切り替える
Exit Sub ' 抜ける

ErrMsg:
' エラーが発生した際にメッセージを表示する
MsgBox "該当するシートが見つからないため、切り替えに失敗しました", vbCritical + vbOKOnly, "切り替え失敗"

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

ありがとうございます。
思い通りにできました!

お礼日時:2005/07/05 16:57

こんなとろころでしょうか。



Sub test1()

Dim Num As String

Num = Range("A1")
On Error GoTo Err
Sheets("Sheet" & Num).Select

Err:

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

ご回答ありがとうございます。
参考になりました。

お礼日時:2005/07/05 16:56

コントロールツールボックスのコマンドボタンを使った例です。


クリックしたらセルA1の値をインデックス値(シートの配列順)にとるシートをアクティブにします。全角数字や数値オーバーの場合は無視されます。

Private Sub CommandButton1_Click()
On Error Resume Next
ActiveCell.Activate
Sheets(Range("a1").Value).Activate
End Sub
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございました。
大変参考になりました。

お礼日時:2005/07/05 16:55

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

このQ&Aを見た人はこんなQ&Aも見ています