|
マクロ初心者ですが、仕事でどうしても必要になったのでマクロを作成しています。よろしければ、マクロの修正、ご指摘いただきたいです。
「ボタンを押すと、ボタン名とシート名が一致するシートがアクティブになる」というマクロを実行したいです。
下記のマクロを実行すると、
1.シートの1枚目に、ボタンが作成(シートの枚数分)され、各シートの名前が表示される。
2.また、そのボタンをクリックすると、名前が同じシートをアクティブにする。
となる予定でした。
実行してみると、
シート名に「大文字の英語」が使われているボタンをクリックするとエラーになった。
※他の漢字やカタカナなどのシート名のボタンをクリックすると、きちんとアクティブになる。
となりました。
原因として考えられる事を教えていただき、下記のマクロを修正していただきたいです。
≪マクロの説明≫
指定のシートを選択する「シート選択」と言うマクロを用意し、
ボタン設置の時にそのマクロに引数でシート名を渡す様に設定しています。
Worksheets(n).Nameでシート名が取得されています。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Sub ボタン設置()
With Worksheets(1)
For i = 1 To (Worksheets.Count - 1)
nX = 145 * (1 + ((i - 1) Mod 8))
nY = 30 * (1 + Int(i / 8))
sName = Worksheets(i + 1).Name
With .Buttons.Add(nX, nY, 140, 20)
.Text = sName
.OnAction = "'シート選択""" & sName & """'"
End With
Next i
End With
End Sub
Sub シート選択(sShtName As String)
Worksheets(sShtName).Select
End Sub
|
|