【お題】NEW演歌

各シートの同じ位置に「シート1に戻る」ボタンを付けるマクロを実行したいです。
前回教えていただいたことから、ボタンを設置するマクロはわかったのですが、
『2枚目以降のシートから、シートが終わるまで、各シートにボタンを設置する』マクロがわかりません。

1枚目は目次?的なページですので、
2枚目以降から、シートが終わるまで、決められた位置に「戻る」ボタンをつける。
という作業をマクロに記憶させたいと考えています。

※下記は、こちらで教えていただいたものを参考にしたマクロです。
「戻る」という言葉をどこに入れてよいかもわからりません。

・・・・・・・・・・・・・・・・・・・・・・・・・・・

Sub 戻るボタン設置()
With ActiveSheet
For i = 1
'幅140、高さ20のボタンを追加
.Buttons.Add(145 * i, 120, 140, 20).Text = i
Next i
End With
End Sub

質問者からの補足コメント

  • ご回答ありがとうございます。
    これをそのまま貼り付けると、最後のシートだけ「戻るボタン」が付きません(;O;)

    そして、
    このボタンを作成した際に、「シート1をアクティブにする」
    といったマクロを記録させたいのですが...よろしければ教えていただきたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/28 17:21

A 回答 (3件)

あ、すみません。

勘違いしてました。私のミスです。
"- 1"の部分を消してやってみてください。

ボタンを作成し終わった後でシート1に戻りたいなら、最後にこれを追加してください。

Sheets(1).Select
    • good
    • 3
この回答へのお礼

丁寧にご回答いただきありがとうございました。
無事作業できました!

お礼日時:2015/05/29 10:21

コードを解説します。



1行目はサブプロシージャのタイトルです。

2行目にある Worksheets.Count は、開いているbookのシートの数を取得する構文です。

同じく2行目のfor文は、シートの2枚目から、[シートの数 - 1]まで繰り返し処理をする、という意味です。
ボタンを設置したいシートの数は、全てのシート数から目次のシートを引いた数ですよね。
ですから-1しています。

最後のシートだけ失敗するのであれば、実際のシートの数がこの前提よりも1つ多いことを意味しています。
確認してみてください。
    • good
    • 1
この回答へのお礼

ありがとうございました!

お礼日時:2015/05/29 10:27

まるまるこれに変えてください。



Sub 戻るボタン設置()

For i = 2 to Worksheets.Count - 1
Sheets(i).Select
ActiveSheet.Buttons.Add(145, 120, 140, 20).text = "戻る"
Next i

End Sub
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございました!

お礼日時:2015/05/29 10:27

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

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


おすすめ情報