- ベストアンサー
シート名の一部を変更する方法について
XPのVBAでシート名の一部を変更するマクロを組もうとしています。 山田町(統計)、山田町(1期)、山田町(2期)というファイルを、指定した表の中の各セルの町名に変更して保存します。(全部で40町。たとえば浅野町(統計)、浅野町(1期)、浅野町(2期)というふうに) 今はFor each a in UsedRangeという形でa(統計)、a(1期)、a(2期)という名前で保存するようにしています。 (統計)、(1期)、(2期)の部分を指定しないで、共通する部分(a)だけ変える、というマクロの組み方はないでしょうか。 初心者なもので、うまく説明できないので申し訳ありません。 どなたかよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あまり詳しく状況が見えないのですが、 山田町(統計)、山田町(1期)、山田町(2期) というシート名を 浅野町(統計)、浅野町(1期)、浅野町(2期) に変更するという意味で作成しました。 *注意 1、シート名にある "("(カッコ) は半角であるという前提でマクロを書いていますが、もし全角ならば(1)(2)の部分の "("(半角) を "("(全角)に変更してください。 2、(1)部分の"山田町"の部分には今から変更する名前を、(2)の"浅野町"の部分には変更した後の名前を書いてください。 Sub シート名変更() Dim s As String For i = 1 To Sheets.Count s = Sheets(i).Name If Left(s, InStr(s, "(") - 1) = "山田町" Then '(1) Sheets(i).Name = "浅野町" & Mid(s, InStr(s, "(")) '(2) End If Next End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の意味がわかりません。>初心者なもので、ではなく、文章表現の訓練と考え方の整理が不十分だと思う。 >シート名の一部を変更する シート名の文字列は、変更後の文字列全体を指定します。 ブック名でも同じです。 その文字列の一部(後半?)を作るときに、セルの値を検索して適当に持ってくる分けです。通常は&で2つの文字列を(固定部分と変動部分を)結合します。 質問には統計、1期、2期を適切に振るロジックが書いてないのではないですか。もしそうならプログラムを聞かれても答えられません。 ーーー >)、山田町(2期)というファイルーー>ブックの話 >シート名の一部を変更する方ーー>シートの話 一体どちらですか。 どうも推測では、名前の変更はブック名の方か? すると表題の>シート名の一部を変更する方法について、はブック名の一部をシートのセルのデータで変更する方法について という質問ですか? どういうタイミングで>統計、1期、2期を振るのか、切めりしないとだめです。 > UsedRange にはどんなデータがあるのか実例を挙げること。
お礼
ありがとうございます。成程、思いついたまま質問を乗せてしまいました。(山田町(統計)、山田町(1期)、山田町(2期))(浅野町(統計)、浅野町(1期)、浅野町(2期))(大分町(統計)(大分町(1期)、大分町(2期))というふうにしたかったのです。思いつめると、そのまま文章にする傾向があるので、反省しています。今回はどうやら解決しました。本当にご忠告ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
>山田町(統計)、山田町(1期)、山田町(2期)というファイルを、指定した表の中の各セルの町名に変更して保存します。 これはマスターブックがあってそのシート名が、 >a(統計)、a(1期)、a(2期) である時に、表中の町名(山田町、浅野町・・・)毎にブックを作成・3つのシートをコピペ、 そのシート名を a から各町名に変更・保存したいと言う感じの事でしょうか? 読み違いでしたらごめんなさい。
お礼
ありがとうございます。おっしゃるとおりです。説明不足で、おまけにお礼が遅くなり申し訳ありません。とりあえず今回は完成しました。ご 迷惑をおかけしました。
- fujillin
- ベストアンサー率61% (1594/2576)
ご質問の意味をよく理解できてませんが… 現状は『指定したシート』で、それぞれ 浅野町(統計)、 浅野町(1期)、 浅野町(2期)・・・ と指定しているのを、 浅野町、 山田町、 ・・・ みたいにできないかという意味でしょうか? もしそうであるなら、 シートから a="浅野町"を取得したら、保存する際に a & "(統計)"、 a & "(1期)"、 a & " (2期)" の3種類のファイルをセットで作成(=保存)するようにすれば良いだけでは? 意味が違っていたなら、無視してください。
お礼
ありがとうございました。ようやく完成しました。
お礼
ありがとうございました。教えていただいた方法で考えました。早い回答を本当にありがとうございました。