• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロプログラムを修正するマクロ)

マクロプログラム修正の方法を考える

このQ&Aのポイント
  • マクロプログラムの修正を考える際、個人的な用途だけでなく多くの人に使われることも視野に入れる必要がある。
  • 既存のマクロプログラムの中身を変更するマクロを作成し、それを送ってもらうことで修正版の再配布が可能になる。
  • ただし、マクロプログラムの中身を変更する方法はウィルスのように見えるため、使用には注意が必要である。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>”aloha”を”Hello”に置き換える方法ということになりますが・ 例えば、 ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.ReplaceLine 3, "MsgBox ""HELLO""" '行置換 のようにして、指定した行を置き換えることができます。 上記では、直接置き換える文字列を指定していますが、 コメントアウトしてあるように、Lines を使って指定した行のデータをString として読み込むことができますから、 それをReplace 関数を使って置き換えてから行全体を置き換えるというのもできると思います。

tarobei
質問者

お礼

アドバイス頂いた内容を元に何とかなりそうな感じです。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答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の読込については、インポートして貰うとか。 色々方法はあると思いますが、省略

tarobei
質問者

補足

ありがとうございます。非常にいい感じなのですが、もし可能なら置換の方法を教えてください。 上記例で言えば、”aloha”を”Hello”に置き換える方法ということになりますが・・・。あとこれさえできればばっちりなのです!何卒!

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

エクセル2000までなら可能でしょうが、それ以降のバージョンではマクロでモジュールをいじれなくなっていると思います。 > それをみんなに送って実行してもらうだけで済むなぁなん・・・ 送る先がわかっているなら修正版を送って上書きしてもらえばいいのでは?

tarobei
質問者

お礼

早速のご回答ありがとうございます。 コピーしてあげた人々は、失礼ながら実はかなりPC音痴なご高齢の方が多いため、なるべくなら「ボタンひとつ」ですませたいということです。言葉足らずでした。申し訳ありません。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • IEの脆弱性に対する修正プログラムの配布

    最近、WindowsIEの未修正欠陥に基づく脆弱性がメディアを介して周知されて、私も何とか対策せねばならないと感じています。Microsoftから既に修正プログラムの配布が始まった、との情報は本当でしょうか? 本当だとして、私の場合はWindowsXPをいまだに主力として使っています。XP用の修正プログラムはどのような形態で提供されているのでしょうか? Microsoftのダウンロードセンター等で探しましたが見当たりません。 何処で提供されているのでしょうか? 皆様のお知恵をいただければ幸いです。 尚、IEはInternetExplorer8を使っています。

  • エクセルVBAでVBAの修正は出来るのでしょうか?

    エクセルVBAでVBAの修正は出来るのでしょうか? あるエクセルファイルにマクロを組み込んでいます(ユーザーフォームも使用)。 このエクセルファイルを複数個フォルダ内にコピーしています。 このコピーした全てのファイルのマクロの修正をVBAで出来ないかと考えています。 修正箇所はモジュール内のコード修正、モジュールの追加、既存のユーザーフォームにボタン等の追加等です。 エクセルは2003を使用しています。 どなたか教えてください。

  • EXCELのマクロの隠し方

    EXCELでマクロを作成し動かしています。 これを多数の方に使ってもらうのですが、マクロ部分を壊されたり変更されてしまうと困るので、私以外の人からはマクロの中身を見えなくしたいのですが、どのようにすればいいのでしょうか? どなたか教えてください!

  • サーバー上のファイル&プログラムの整理方法

    サーバー上のファイル&プログラムの整理方法 現在Webページ上でCGIやPHPを使用したページを使っていますが、 長年のプログラム追加や修正などでファイル数が膨大になり、 プログラムの繋がりや不要なファイルが多数出来ています ファイル数も数千となっており、一つ一つ中身をチェックするのも 大変です HTMLのサイトマップの様にプログラムの連動や孤立を調べるツール や手段は無いでしょうか?

  • UNIXシェルプログラム等からバイナリーファイルを作成する方法

    UNIX環境で、ある出力を得るために、複数の Perl スクリプト、シェル スクリプト、またバイナリのプログラムを決まった手順で実行しています。最近になって、これらのプログラムをすべて他の人に譲り渡す必要が生じたのですが、スクリプトの中にソースは配布できないものが含まれています。 そこで、これらのプログラムをまとめて一つのバイナリ実行ファイルを作成できないかと思案しているのですが、それは可能でしょうか。また可能な場合、どのようにしたらよいのか教えていただけないでしょうか。 よろしくお願いします。

  • マクロ(VBA)について

    会社のアルバイトスタッフの従業員名簿をマクロを用いたexcelで作成しています。 ボタンひとつで別シートの雇用契約書にデータが反映されるようになっています。(VBAで作成?しています。) 年度ごとに従業員名簿のファイルを作成しているのですが、新年度の従業員名簿ファイルの雇用契約書のシートに列を増やしたところ、昨年度の従業員名簿の雇用契約書シートもズレてしまいました。 従業員名簿を作成した人が退職してしまい、修正の仕方がまったくわかりません。 マクロを設定しているファイルをコピーすると、2つのコピーは連動されるのでしょうか? VBAがまったくわからず苦戦しております。 表現がわかりずらくて申し訳ありません。よろしくお願いします。

  • マクロについて

    みなさんの力を貸してください。 多分、他にも似たような質問内容があると思います…。 エクセル2003を使用しています。 (例) sheet1では、書式を作成してあります。 sheet2には、オートシェイプで色々な図形を作って並べてあります。 色んな図形といっても、オートシェイブ(複数)とコンボボックスをグループ化として一つの図形として利用しています。 sheet2にあるグループ化したいろんな図形の中から一つの図形をクリックして、sheet1にコピー+貼り付けるという作業をしています。 その作業をマクロのプログラムで作りたいと思っています。 そのプログラムを教えていただけないでしょうか? また、自作の図形をクリップアートに登録も試したんですが、コンボボックスが作動できなかったのです… よろしくお願い致します。

  • Excelのマクロについて

    お世話になります。 当方はマクロについての知識が一切なく、皆様にご助力いただきたく存じます。 1. 指定した3つのシートを1つのPDFに変換し、ファイル名は指定したセルの値で、保存先はデスクトップ。(※社員全員が使用することを前提としています。デスクトップの任意のフォルダや既存ファイルに上書きするのではなく、新規ファイルとして保存させたいです。) 2. 今開いているExcelをそっくりそのままコピーし、ファイル名のみ指定したセルの値で、保存先はデスクトップ。(※マクロは有効にしておきたいので、xlsmの拡張子のまま保存させたいです。) 自分で色々試しましたが、出来る出来ないの差異があり困っております。 よろしくお願いいたします。

  • 二つのワードのファイルの修正履歴

    よろしくお願いします。 ワード2010なのですが、他人がつけてきた修正履歴を自分のファイルに反映させることはできるのでしょうか? たとえば同じ文書の校正を複数の人でやり、最後にみんなが修正履歴を付けたところを合体させて一つのファイルにするなどできないでしょうか? 目検で確認していくしかないのでしょうか? また、修正はされているけれ度も修正履歴がついてないため、とりあえず文章全部をコピーしよう、としてコピーしたところ、元あるファイルの様式がぐちゃぐちゃになってしまうことがありました。 書式や体裁(インデントや文字の大きさ)はコピーした文章を張り付けるファイル(最終のファイルとなるもの)で、文章の内容だけをコピーすることはできますか? エクセルでは、テキストのみコピーなどできますが、ワードで同じようなことができないでしょうか? 要は複数のワードファイルを一つのファイルにまとめるいい方法をおしえていただければ。 また、こういうワードやエクセルのプチ裏技を勉強する本があれば教えてください。 よろしくお願いします。 教えてください。よろしくお願いします。

  • ウインドウズのUPDATE

    ウインドウズのUPDATEでInternet Explorer 用の累積的な修正プログラム Microsoft VM セキュリティ問題の修正プログラム セキュリティ問題の修正プログラムなどをUPDATE中に画面左上に、現在既存のファィルの言語はミレニアムエディションの言語と違っています。既存のファィルの言語を使うことをお勧めしますと出て、はいを選択いたしました。 在既存のファィルの言語はミレニアムエディションの言語と違っています。<これはどのような意味でしょうか? UPDATE前に私の使っていた言語は違っていたのでしょうか。詳しく解説してください。又皆様もUPDATEした際に同じテロップが出ましたか?あわせて教えてください。よろしくお願いいたします

専門家に質問してみよう