- ベストアンサー
EXCELの現在シート名の変更
いつもお世話になっております。 excelで、現在開いているシート名をVBAで変更しようとしているのですが、なかなかうまく行きません。 と言うのも、シート名がわかれば、名称変更は簡単なんですが・・・アバウトに 「現在選択されているシート名をAAAに変更する」 といったことは可能なんでしょうか? 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。補足に関連して。この先がありそうで、ご質問にお答えできる力はあるかどうかわかりませんが、下記をヒントに使ってください。 Sub test01() s = Array("(1)", "(2)", "(3)", "(4)", "(5)") sn = InputBox("sheet name=") Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets If sn = sh.Name Then For i = 0 To 4 p = InStr(sh.Name, s(i)) If p = 0 Then ActiveSheet.Name = sn & s(i) Exit Sub End If Next i End If Next ActiveSheet.Name = sn End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#1で回答はすんでいると思いますが 標準モジュールに Sub test01() MsgBox ActiveSheet.Name ActiveSheet.Name = "AAA" MsgBox ActiveSheet.Name End Sub を実行して納得してください。
お礼
考えてみれば、初歩的な質問ですいませんでした。 できれば、もう少しつっこんだ所を教えていただきたいのですが。補足に記入しておきます。
補足
目標なんですが、activesheetにAAAと名前を付けるとすると、通常は、教えて頂いた通りの手順なんですが、すでにAAAと言うシートが存在していた場合、シート名を自動でAAA(2)、さらにAAA(2)が存在していた場合にAAA(3)とするようなルーチンを組みたいんです。 指定したシートが存在するかどうか調べる方法はあるんでしょうか?これも簡単な質問でしたらすいませんが、宜しくお願い致します。
- 78tch
- ベストアンサー率31% (50/157)
ActiveSheet.Name = "AAA" ですか? マクロの自動記録でシートの名前を変えるという操作をして、出来るマクロ1の中身を参照なさるとよろしいかと存じます。
お礼
早速の回答ありがとうございます。 この先ですが・・・ありません(笑) 私自身、仕事の合間にVBAを勉強中の身なので、 上記の内容も半分ほどしかわかりません。 これから内容を1つ1つ理解させて頂こうと思います 一度動かしてみましたし、内容を理解してからと言うのも失礼だと思いますので、良回答とし、質問を終了させて頂こうと思います。 有り難うございました。