Excel VBA 質問スレッド №2014 (未解決)

VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい

投稿者 : ko     投稿日時 : 2024/09/18(Wed) 18:28:33     OS : Windows 11     EXCEL : Office 365
マクロa : 業者から渡されたもの
機能→値を入力しマクロを実行するとデータが吐き出され保存前の状態で終了

マクロb : こちらは自作のもの(作成途中)
機能→こちらで自社の値を入力しマクロを実行すると
マクロaが起動され入力項目分のファイルを出力し指定の保存場所へ格納される

やりたい事
保存前(名前をつける際)に別の マクロで指定の名前で保存し対象ユーザー分を指定の場所に格納したいが、マクロaで吐き出されたファイルをマクロbで操作できていない

お願いします

スポンサーリンク
[返信 1] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : さんこう     投稿日時 : 2024/09/18(Wed) 20:35:43
>マクロを実行するとデータが吐き出され保存前の状態で終了

保存前であっても、名前はあるでしょうから(book1とか)、下記を参考にして
そのブック名が取得できるか確認してみてはいかがでしょうか。

<vba 他のブック一覧>
https://www.google.com/search?q=vba+%E4%BB%96%E3%81%AE%E3%83%96%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7

[返信 2] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : higeru     投稿日時 : 2024/09/19(Thu) 08:32:31
> 保存前(名前をつける際)に別の マクロで指定の名前で保存

 何言うてるですか、保存前に保存て。「別のマクロ」とは「マクロa」とも「マクロb」とも別のもの? まあ、別でも同じでも関係ありませんが。


> マクロaで吐き出されたファイルをマクロbで操作できていない

 「操作」ではなく「参照」あるいは「特定」できないということかと思います。
 保存前ならCSVではなくひとつのExcelブックですから、開いている全Excelブック(Workbooks)の中からマクロaでもマクロbでも(個人用マクロブックでも)ないものがそれです。

[返信 3] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : 悪いことは言わん     投稿日時 : 2024/09/19(Thu) 09:41:24
マクロaを作ってもらった業者に頼む。
それが早いし賢明。

[返信 4] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : tek     投稿日時 : 2024/09/19(Thu) 11:27:26
こういうこと?
Sub マクロb()
    Const マクロa = "マクロa"
    Const マクロaの入ったブック = "ブックa.xlsm"
    
    Dim wb As Workbook
    
    Application.EnableEvents = False    'マクロaの入ったブックが開いたときにマクロが実行されないようにする
    
    With Workbooks.Open(ThisWorkbook.Path & "\" & マクロaの入ったブック)
        .Worksheets(1).Range("A1").Value = "値"       '要変更 実際の値の入力
        Application.Run マクロaの入ったブック & "!" & マクロa
        .Close False
    End With
    Set wb = Workbooks(Workbooks.Count)
    With wb
        MsgBox "保存前のブック名は " & .Name & " です"  'ここに名前を付けて保存等を記載
    End With
    Application.EnableEvents = True
End Sub

[返信 5] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : ko     投稿日時 : 2024/09/19(Thu) 16:27:27
皆さん、質問の質が悪く大変申し訳ないです

パターン①

業者のマクロ(マクロb)内の、getsaveasfilename を実行し手動で名前と保存先を指定して保存するのではなく、ダイアログが出た画面から別のマクロで操作可能なのでしょうか?
(自分のイメージでは、マクロbのgetsaveasfilenameが実行がトリガーとなり強制的に保存させる記述を別ファイルから実行する必要があるのかなとイメージしております)


※事情がありコードの共有ができません、またできるだけマクロbは記述を変えたくないです


パターン②

また、もしマクロbに影響が出ない程度に編集できると仮定して、getsaveasfilename を実行後に手動の操作を挟まずVBAのみで場所を指定して保存できるのでしょうか?

[返信 6] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : さんこう     投稿日時 : 2024/09/20(Fri) 08:16:09
>業者のマクロ(マクロb)内の、getsaveasfilename を実行し手動で名前と保存先を指定して保存するのではなく、ダイアログが出た画面から別のマクロで操作可能なのでしょうか?

「マクロa」か「マクロb」なのか存じませんが、「ダイアログが出た」状態では「別のマクロ」は動かないでしょう。

[返信 7] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : higeru     投稿日時 : 2024/09/21(Sat) 09:59:29
> 業者のマクロ(マクロb)内の、

 aとbが最初の質問と逆になってますし、

> getsaveasfilename を実行し手動で名前と保存先を指定して保存するのではなく、ダイアログが出た


ということですが、(getsaveasfilename が Application.GetSaveAsFilename のことだとして)ダイアログを出したままでそのマクロを終了することはできません。


 保存した後(業者のマクロの終了後)にそのファイル(当然パスは分かっているでしょうから)を操作すれば済むことだと思うのですが。いまひとつやりたいことが理解できませんね。

[返信 8] Re : VBAで保存前(名前をつける段階から)のcsvファイルを別マクロで操作したい
投稿者 : だから悪いことは言わん     投稿日時 : 2024/09/25(Wed) 09:34:17
前に言ったとおり、マクロaを作ってもらった業者にすぐ電話。
いや、ひょっとしてマクロbか?
まーそんなことはどーでもえー。
こんな基本的なとこ簡単に間違えるあんたには、絶対無理。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-05 06:39:47 )
タイトルとURLをコピーしました