ここから本文です

エクセル(2016)のマクロについて シート名 あああ(1期)a-b-c あああ(1期...

poo********さん

2018/3/2219:45:19

エクセル(2016)のマクロについて

シート名
あああ(1期)a-b-c
あああ(1期)d-e-f
あああ(1期)g-h-i
あああ(1期)j-k-l

あああ(1期)m-n-oとあり、全シート名の1期を年間と変更するマクロです。

シート名
あああ(年間)a-b-c
あああ(年間)d-e-f
あああ(年間)g-h-i
あああ(年間)j-k-l
あああ(年間)m-n-o

という具合に。

Sub sample()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Name = Replace(ws.Name, "1期", "年間")
Next
End Sub

で、できるようになりました。

問題は、私のPCのデスクトップに「データ集計」というフォルダがあり、そのフォルダ内にシート名を変更したい「入金高リスト」という名のブック(データ)があります。(シート数は100以上)
同フォルダ内に違うブックでシート名を変更する(上記のマクロ)マクロボタンを設定し、ボタンを押したら「入金高リスト」ブックを見に行きシート名を変更するにはどうしたら良いのでしょうか?

マクロの記録でやっても全然うまくいきません。
また、違う人のPCでデスクトップに同名のフォルダ、ブックを用意した場合でも出来るようにするにはどうしたらよいですか?(マクロコードのユーザー名を変更するだけで良いですか?)

わかる方、よろしくお願いします。

閲覧数:
23
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2018/3/2220:50:43

Sub sample()
Const xBfr As String = "1期"
Const xAft As String = "年間"
Dim sh As Worksheet, xFull As String
xFull = CreateObject("WScript.Shell").SpecialFolders("Desktop") & _
"\データ集計\入金高リスト.xlsx"
With Workbooks.Open(xFull)
For Each sh In .Worksheets
With sh
If InStr(.Name, xBfr) > 0 Then
.Name = Replace(.Name, xBfr, xAft)
End If
End With
Next
.Close True
End With
End Sub

質問した人からのコメント

2018/3/27 23:49:24

ご回答ありがとうございます。
無事にできました。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる