
XPのVBAでシート名の一部を変更するマクロを組もうとしています。
山田町(統計)、山田町(1期)、山田町(2期)というファイルを、指定した表の中の各セルの町名に変更して保存します。(全部で40町。たとえば浅野町(統計)、浅野町(1期)、浅野町(2期)というふうに)
今はFor each a in UsedRangeという形でa(統計)、a(1期)、a(2期)という名前で保存するようにしています。
(統計)、(1期)、(2期)の部分を指定しないで、共通する部分(a)だけ変える、というマクロの組み方はないでしょうか。
初心者なもので、うまく説明できないので申し訳ありません。
どなたかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
あまり詳しく状況が見えないのですが、
山田町(統計)、山田町(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
No.4
- 回答日時:
質問の意味がわかりません。
>初心者なもので、ではなく、文章表現の訓練と考え方の整理が不十分だと思う。>シート名の一部を変更する
シート名の文字列は、変更後の文字列全体を指定します。
ブック名でも同じです。
その文字列の一部(後半?)を作るときに、セルの値を検索して適当に持ってくる分けです。通常は&で2つの文字列を(固定部分と変動部分を)結合します。
質問には統計、1期、2期を適切に振るロジックが書いてないのではないですか。もしそうならプログラムを聞かれても答えられません。
ーーー
>)、山田町(2期)というファイルーー>ブックの話
>シート名の一部を変更する方ーー>シートの話
一体どちらですか。
どうも推測では、名前の変更はブック名の方か?
すると表題の>シート名の一部を変更する方法について、はブック名の一部をシートのセルのデータで変更する方法について
という質問ですか?
どういうタイミングで>統計、1期、2期を振るのか、切めりしないとだめです。
> UsedRange
にはどんなデータがあるのか実例を挙げること。
ありがとうございます。成程、思いついたまま質問を乗せてしまいました。(山田町(統計)、山田町(1期)、山田町(2期))(浅野町(統計)、浅野町(1期)、浅野町(2期))(大分町(統計)(大分町(1期)、大分町(2期))というふうにしたかったのです。思いつめると、そのまま文章にする傾向があるので、反省しています。今回はどうやら解決しました。本当にご忠告ありがとうございました。
No.3
- 回答日時:
>山田町(統計)、山田町(1期)、山田町(2期)というファイルを、指定した表の中の各セルの町名に変更して保存します。
これはマスターブックがあってそのシート名が、
>a(統計)、a(1期)、a(2期)
である時に、表中の町名(山田町、浅野町・・・)毎にブックを作成・3つのシートをコピペ、
そのシート名を a から各町名に変更・保存したいと言う感じの事でしょうか?
読み違いでしたらごめんなさい。
ありがとうございます。おっしゃるとおりです。説明不足で、おまけにお礼が遅くなり申し訳ありません。とりあえず今回は完成しました。ご
迷惑をおかけしました。
No.1
- 回答日時:
ご質問の意味をよく理解できてませんが…
現状は『指定したシート』で、それぞれ
浅野町(統計)、 浅野町(1期)、 浅野町(2期)・・・
と指定しているのを、
浅野町、 山田町、 ・・・
みたいにできないかという意味でしょうか?
もしそうであるなら、
シートから a="浅野町"を取得したら、保存する際に
a & "(統計)"、 a & "(1期)"、 a & " (2期)" の3種類のファイルをセットで作成(=保存)するようにすれば良いだけでは?
意味が違っていたなら、無視してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access エクセルシート名変更
-
Excelマクロのエラーを解決した...
-
月ごとに作成している日報ファ...
-
excelのマクロで該当処理できな...
-
【エクセルVBA】「Protect User...
-
エクセルのマクロでアクティブ...
-
Excel VBA リンク先をシート...
-
VBA 別シートの日付けと照合したい
-
セルの値によって、シート見出...
-
EXCELVBAを使ってシートを一定...
-
VBA 別ブック(シート)の同...
-
VBScriptでEXCELのシートをコピ...
-
VBA 入力月で該当シートを選択...
-
エクセルvbaでの処理方法
-
イベントの違いを教えてください。
-
【Excel VBA】Worksheets().Act...
-
Excel チェックボックスにチェ...
-
ユーザーフォームでのリストボ...
-
VBAマクロについて
-
VBA オートフィルター繰り返し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報