こんなことできるのでしょうか・・・
仕事であるマクロを作りました。最初は個人的な用途だけだったのですが、そのうち結構多くの人からも使いたいと言われ、数十人にコピーしてあげました。
ところがそのプログラムにBugが見つかりました。
修正したいのですが、他の多数の人にコピーしたものをどうやって修正するかを思案しています。
みんなに返してもらって修正版を再配布するというのが一番簡単なのですが諸事情によりちょっと無理っぽいのです。そこで、既存のマクロプログラムの中味を変更するマクロプログラムなんてものができれば、それをみんなに送って実行してもらうだけで済むなぁなんて考えています(なんかウィルスっぽいのですが)。
いかがなものでしょう??
No.3ベストアンサー
- 回答日時:
>”aloha”を”Hello”に置き換える方法ということになりますが・
例えば、
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.ReplaceLine 3, "MsgBox ""HELLO""" '行置換
のようにして、指定した行を置き換えることができます。
上記では、直接置き換える文字列を指定していますが、
コメントアウトしてあるように、Lines を使って指定した行のデータをString として読み込むことができますから、
それをReplace 関数を使って置き換えてから行全体を置き換えるというのもできると思います。
No.2
- 回答日時:
例えば、モジュール1の2行目から3行に修正したい関数があるとします。
例
Public Sub func()
MsgBox "aloha"
End Sub
それをモジュール2から
Public Sub Func()
MsgBox "Hello"
End Sub
に置き換えたいとします。
Public Sub sample()
Dim src As String
src = "Public Sub Func()" & vbCrLf & "MsgBox ""Hello""" & vbCrLf & "End Sub"
'元の関数がちゃんとアクセスできているかテストして下さい。
'Debug.Print ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(2, 3) '元のソースが表示される
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.DeleteLines 2, 3 '削除
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.InsertLines 2, src '挿入
End Sub
ただし、
ツール~マクロ~セキュリティ
信頼の置ける発行元~Visual Basic プロジェクトへのアクセスを信頼する
に"チェックがついていないと実行できません。"
モジュール2の読込については、インポートして貰うとか。
色々方法はあると思いますが、省略
この回答への補足
ありがとうございます。非常にいい感じなのですが、もし可能なら置換の方法を教えてください。
上記例で言えば、”aloha”を”Hello”に置き換える方法ということになりますが・・・。あとこれさえできればばっちりなのです!何卒!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Visual Basic(VBA) PowerPoint VBA で画像の鮮明度を変更する方法がわかりません 2 2023/03/24 13:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを禁止している会社って...
-
(実行時エラー5852)Excelデータ...
-
ワード2003を使用。マクロ...
-
wordで改ページごとにそれぞれ...
-
Word2007でファイルを開いたと...
-
Excelのマクロは管理者でないと...
-
Access2010マクロ メッセージ...
-
Wordで複数の単語を一括置換す...
-
画像判定の出来るマクロツール
-
ワードを開くたびに「このプロ...
-
エクセル2007でマクロが使えない
-
Excelで追加した右クリックメニ...
-
Excelのマクロのショートカット...
-
ワードを起動した時にでる「セ...
-
いつもお世話になります。 Web...
-
Excelのセキュリティ警告について
-
「セキュリティレベルが高」の...
-
パワーポイントのマクロの実行
-
お願いいたします。
-
パソコン初心者です。詳しい方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(実行時エラー5852)Excelデータ...
-
Access2010マクロ メッセージ...
-
Word文書に必須入力項目を設けたい
-
Excelのマクロは管理者でないと...
-
Excelのシートを印刷不可(禁止...
-
VBAを禁止している会社って...
-
Excelのマクロのショートカット...
-
画像判定の出来るマクロツール
-
Wordのマクロを有効にする方法
-
フリーソフト(電子印鑑)をイ...
-
今まで実行できていたマクロが...
-
ThisWorkbook Moduleとは??
-
エクセルのVBAで自動的にVBE画...
-
Excel2003 GET.CELL関数を使う...
-
KingsoftのOffice2013でExcelの...
-
EXCELのマクロを有効にする
-
WORDのマクロでNG文字がある場...
-
texの数式番号の形式の変更の仕...
-
マクロのアイコンを消したい
-
Word2007でファイルを開いたと...
おすすめ情報