ご希望の動作をわざわざVBAで行うメリットについて疑問がありますが、
希望の動作にはなると思います。
既存のシート名は、ボタンを配置するシート以外に、「1月」〜「12月」 のシート名とし
ボタンがあるシートの A1 には、1〜12 を入れ、ボタンには下記のマクロを登録
Sub add_MonthSheet()
Dim wst As Worksheet
Dim varValue As Variant
'アクティブシートを取得
Set wst = ActiveSheet
'アクティブシートのA1セルの値を変数に代入
varValue = wst.Range("A1").Value
'セルの値:数値と判断できるか判定
If IsNumeric(varValue) Then
'小数点か含まれるか判定
If varValue = Int(varValue) Then
' 0 より大きく、13より小さいか 判定
If varValue > 0 And varValue < 13 Then
'全シートを走査
For Each wst In ThisWorkbook.Worksheets
'シート名が、A1 の値 + 月 と同じシート名の場合
If wst.Name = varValue & "月" Then
'そのシートを、そのシートの右側にコピー
wst.Copy After:=wst
'コピー終了したので走査を抜ける
Exit Sub
End If
Next
End If
End If
End If
End Sub
HYPERLINK関数 は、フォーカスを移す事なので、特定のセルへの移動等で使いますが
今回のご希望を聞いた限りでは、使う用途が判りません。
どうしても HYPERLINK関数を使う必要があるのであれば
その目的について教えてください。