[[20190608150753]] 『30以上のブックのシートモジュールを一部修正した』(sukekiyo) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『30以上のブックのシートモジュールを一部修正したい』(sukekiyo)

おしえてください。
題名の通りなのですが、やり方がわかりません。
おんなじコードが書かれたブックが30以上あり、
おんなじ部分を一部修正したいのです。
ただ、ファイル名やシートのセルに入っている情報がそれぞれ違うため、
コピーなどはしたくないのです。

< 使用 Excel:Excel2016、使用 OS:unknown >


回答ではありません。
この機会に、マクロブックとデータブックを別にすることを検討さてはどうですか。

(マナ) 2019/06/08(土) 15:23


んー、調べて再構築するとなると素人には大掛かりになりそうです…
(sukekiyo) 2019/06/08(土) 15:52

では、すべてのブックについて、こつこつと修正するしかないのでは。

(マナ) 2019/06/08(土) 18:00


 >んー、調べて再構築するとなると素人には大掛かりになりそうです…

何度でも書き直してみるのが、「素人?」から脱出する道かと思いますが、、、、

 >おんなじコードが書かれたブック
 >おんなじ部分を一部修正したいのです。

基本同じコードなら、コピペで対応できるように書けばいいかと思います。
シートジュールにコードを書いているなら、
そのシートを「Me」というキーワードで表現できます。
その他も何らかの方法で上手くVBA語で表現できると思いますので、
現状のコードを提示して添削してもらってはいかがでしょうか?
当然前提条件として、シート上にどのように配置されているかの説明も必要です。
その時には結合セルの有無や、表中の空白行、空白列の有無なども情報を提示してください。

個人的には、同じマクロがあるブックが複数あるのは気持ち悪いので、
マナさんが提案されているように、マクロブックとデータブックを分ける案に1票です。
気付いたときに、不具合をちょいちょいメンテナンスしてると、
どれが最新版かわからなくなりそうです^^;

(まっつわん) 2019/06/08(土) 18:22


 こんばんは!
例えば、シートモジュールに ooo というフレーズがあったら、kkk に書き換えます。

 すみません。↓これ見逃してました(^^;

 >30以上のブックの

 理論上は↓ですけど、、、試していません。

 昔、マクロの師匠からウィルスは書いちゃだめ、、、って言われてましたけど、、

 怪しいぃぃコードですね(^^;

 まぁ、、後は適当に応用してください。。。

 では、、では、、また、、

 Option Explicit
Sub てすと()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyCode As String
For Each wb In Workbooks
    For Each ws In wb.Worksheets
        With wb.VBProject.VBComponents(ws.CodeName).CodeModule
            MyCode = Replace(.Lines(1, .CountOfLines), "ooo", "kkk")
            Debug.Print MyCode
        End With
    Next
Next
End Sub

 セキュリティーセンター→マクロの設定→で↓

 VBA プロジェクト オブジェクト モデルへのアクセスを信頼する(V)

 にチェックを入れて下さい。
(SoulMan) 2019/06/08(土) 19:57

皆様ありがとうございました。
全て読ませていただきました。
SoulManさんサンキューです!応用したらできそうです!

(sukekivo) 2019/06/08(土) 23:10


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.