電子書籍の厳選無料作品が豊富!

マクロのマクロコードの一部分変更できるかどうかを教えてください。
コードの一部(1行の一部分)を指定シートの指定セル値に変更するマクロを作成することは可能でしょうか。
可能か否かを教えて頂けますか。
もし可能の場合は改めて詳しく質問をさせて頂きます。
又、可能の場合は、
編集するマクロ名とマクロ、とマクロコード全てが必要でしょうか。
又、コードの1行の一部が無理な場合は一行すべてを変更することは可能でしょうか。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    例えば
    マクロ:行政報告があります。
    マクロコードの一部の保存先フォルダの
    Const folder As String = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\2023年 【担当】確認番号 建物名称\"
    の内「\2023年」を2023年度の終わりに手動で「2024年」と変更して保存をしておりますが、
    シート名「300」のセルA41に「2024年」と毎年自動更新し表示されるようになっておりマクロを使用して「2023年」を「2024年」に変更したいのです。
    やはり無理でしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/01/13 14:31
  • うーん・・・

    回答ありがとうございます。
    指示通りにコード設定を行いましたが
    指定フォルダでは無く「ドキュメント」が保存先となっております。
    解決方法を教えてください。
    よろしくお願いいたします。

      補足日時:2023/01/13 15:53
  • うーん・・・

    回答ありがとうございます。指示通りに
    folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & "\【担当】確認番号 建物名称\"
    としましたが
    前回と同じく保存先が「ドキュメント」になってしまいます。
    何度も申し訳ありません、解決方法を教えてください。
    よろしくお願いいたします。

      補足日時:2023/01/13 17:23
  • うーん・・・

    folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & " >> \【担当】確認番号 建物名称\"
    と設定しましたが、やはり同じく「ドキュメント」が保存先になってしまいます。
    何度も申し訳ありません
    解決方法をお願いいたします。
    よろしくお願いいたします。

    No.6の回答に寄せられた補足コメントです。 補足日時:2023/01/13 17:31

A 回答 (7件)

こんにちは。



基本、無理と思って下さい。
理由は、ウィルスを作成できてしまう可能性があるので、可能だとしても
コードのアップが不可になるかと思います。

因みに、1行目をどの様に変更したいのでしょうか?
それは、マクロの条件分岐などで対応できないのでしょうか?
この回答への補足あり
    • good
    • 0

セルの中身をコードとして使え無いか?と言う意味???



例えば、
If Sh1.Range("B" & Cnt2).Value = Sh2.Range("A" & Cnt2).Value Then
の様なコードのRange("A" & Cnt2).Valueの部分がセルに格納されていて、
それを読み込んでコードを組み立てる。

古いアーキテクチャーのマシンで、かつ、アセンブラなら可能かも知れないし、昔は良くやった。
が、今は自己書き換えを検出したらアンチウィルスソフトが止めてしまうから無理。
    • good
    • 0

こんにちは



プロテクトがかかっていないなど普通の状態であれば、VBAエディタを制御することで可能です。
1行の一部を変更することも可能ですが、解析する分面倒です。
(1行差し替えの方が簡単)

ただし、コードを変更するマクロなので、きちんと整理された条件下で実行しないとおかしなことになる可能性があります。
ですので、ここで簡単なご質問を繰り返しているような方には、使用することはお勧めできません。
    • good
    • 1

一応、ご質問の回答ですが


モジュールに入っているVBAコードのすべてをシートに書き出す事や
特定の文字列をReplaceしたり、VBEコードを書き込む事など・・
VBEを介すとコードは単なる文字列なので 可能です

通常、必要に迫られるケースは無いはず
通常、コード自体を開発者が変更する場合 必要のない事柄だと思いますし
運用時、状況などでコード自体の変更が必要なケースは考えられませんね
(状況に合わせたコードを用意しておけば良いだけ)

可能との回答で興味がある場合は、VBEコードの操作について
以前の回答履歴にVBEのコード書き換えの回答があると思います
他のQAなどでも 存在しますし VBEコードの操作を解説した参考サイトもMsを含め複数ありますので自身で理解して試すなんてことも出来ます

補足部分
Constをやめて変数として構成する文字列の一部をセルのTextとして取得すれば良いだけ

Dim folder As String
folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & "【担当】確認番号 建物名称\"

依存文字が気になる
    • good
    • 0

スプレッターが付いていませんでしたね 【担当】 >> \【担当】

    • good
    • 0

スプレッター ×


パスセパレータ
この回答への補足あり
    • good
    • 0

ChDir?



文字列確認してください

#5 フォルダでは無いですね いい加減でごめんなさい
\でなく全角スペース?見たいですね

folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & " 【担当】確認番号 建物名称\"

余計なお世話かも知れませんが
回答しちゃったから返信を回答しますけれど
コピペで使えるかどうかを繰り返しても・・・どうかな 
出来る出来ないでなくちゃんと検証しないといけないと思いますよ

QAの参考プロシージャなんてやっつけコードだと思いますが・・
仕事に内容も分からず結果でVBA使うなんて 怖すぎると思います
    • good
    • 0
この回答へのお礼

回答ありがとうございました 
連絡が遅くなり申し訳ありません
只今は会社のパソコンから離れてしまい
来週の月曜日の確認にしまいますので
ご迷惑をお掛けしする事になりますので
一旦ベストアンサーとさせて頂きます

お礼日時:2023/01/13 19:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!