Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
指定したシート名のシートへの移動とシートコピーについて
投稿日時: 25/07/18 12:23:57
投稿者: tosy

1月から12月までの名前のシートが有り、もう一つのシートのA1に対象月の入力欄とその下に
マクロ登録ボタンを配置して、それを押すと、対象月のシートをその隣にシートコピー
するというマクロを作りたいのですが、対象月を変えるとうまくいきません。
一応、HYPERLINK関数を作り、対象月への移動を加味してみましたがダメでした。
どなたか方法をご教示いただけると幸いです。よろしくお願い致します。

回答
投稿日時: 25/07/18 13:51:33
投稿者: Suzu

ご希望の動作をわざわざ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関数を使う必要があるのであれば
その目的について教えてください。

投稿日時: 25/07/18 14:14:35
投稿者: tosy

早速のご丁寧な回答ありがとうございます。
正に実現したかった内容です。HYPERLINK関数の件は、私の認識間違いでしたので、
ご放念ください。
皆様の素早い回答やご親切な対応にいつも感謝、感心してQ&A等を拝読しております。
Suzu様の対応に重ねて感謝いたします。