
独学でExcelを学んでおり、非常に有用に思われたので Application.Run を
さわり始めたのですが、
受け側.xlsm
Sub 受け側()
Dim FilePath, ModuleName, ProgramName, FileName
FilePath = "**********"
ModuleName = "Module1"
'ProgramName = "大元マクロ()"
FileName = Dir(FilePath)
Application.Run "'" & FilePath & "'!" & ModuleName & "." & ProgramName
Application.DisplayAlerts = False
Workbooks(FileName).Close
Application.DisplayAlerts = True
End Sub
大元.xlsm
Sub 大元マクロ()
Cells(12, "A").Value = "ああああ"
Rows(4).Copy
Rows(6).Insert Shift:=xlDown
End Sub
にて、Excelファイルは両方デスクトップにあり、エラーも出ないのですが
Cells(12, "A").Value = "ああああ"
↑は反映されるのですが
Rows(4).Copy
Rows(6).Insert Shift:=xlDown
↑部分が反映されません。
もちろん、大元.xlsm を起動し、Sub 大元マクロ()を単体で動かせば
大元.xlsm上にて指示通り反映されます
なにか根本的な間違いがあるのでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>現在はマクロをアドイン化+登録方法をマニュアル配布で、近い状態を
>再現できるのでは? と、考えております。
application.runは、よくわからないところがあるので、
マクロのアドイン化で対応できるなら私も、そちらの方が良いかと思います。
No.4
- 回答日時:
tatsumaru77 様
ご回答ありがとうございます。
質問者:おとしより で、ございます。
誠に恥ずかしながら、何故かログインができないため新規にて登録を
いたしまして、ご返答をさせていただいております。
はい、少し手を加えまして動作確認ができましたので、本命である
マクロへ変更し動作確認を行なったところ、結果が毎回変わる現象に
見舞われ、ステップインでの検証もできないため、application.run での
方向は断念をいたしました。
現在はマクロをアドイン化+登録方法をマニュアル配布で、近い状態を
再現できるのでは? と、考えております。
検証にお時間まで割いていただき、誠にありがとうございました。
No.3
- 回答日時:
No2です。
結局のところ、何が原因なのかよくわかりませんでした。
あなたにとって、満足な回答にはなりませんが、ワークシート情報をパラメータとして渡せば、それなりに期待した動作になるようです。
Sub 受け側()
Dim FilePath, ModuleName, ProgramName, FileName
FilePath = "*****"
ModuleName = "Module1"
ProgramName = "大元マクロ"
FileName = Dir(FilePath)
Dim ws As Variant
Set ws = Worksheets("AAA")
Dim macname As String
macname = "'" & FilePath & "'!" & ModuleName & "." & ProgramName
Call Application.Run(macname, ws)
Application.DisplayAlerts = False
Workbooks(FileName).Close
Application.DisplayAlerts = True
End Sub
Sub 大元マクロ(ByRef ws As Variant)
ws.Cells(12, "A").Value = "ああああ"
ws.Rows(4).Copy
ws.Rows(6).Insert Shift:=xlDown
End Sub
No.2
- 回答日時:
No1です。
補足ありがとうございました。
こちらでも再現しました。
copy命令はapplication.runで実行される場合、何かの制約があるのかもしれません。
解決に至るかどうかはわかりませんが、こちらでも調査してみます。
No.1
- 回答日時:
Cells(12, "A").Value = "ああああ"
Rows(4).Copy
Rows(6).Insert Shift:=xlDown
シート名をきちんと記述していないのが原因かと思われます。
上記の処理対象となるシート名は何でしょうか。
又、このシートは、受け側.xlsmのシートですか。
それとも、大元.xlsmのシートでしょうか。
間違えて補足コメントしてしまい失礼しました。
はい、処理対象は、受け側.xlsm Sheets("AAA")となります。
私も当初、指定が必要かと思い
Workbooks("受け側.xlsm").Sheets("AAA").Cells(12, "A").Value = "ああああ"
Workbooks("受け側.xlsm").Sheets("AAA").Rows(4).Copy
Workbooks("受け側.xlsm").Sheets("AAA").Rows(6).Insert Shift:=xlDown
と、指定を行ないましたが結果に変化が見られなかったため、質問をさせていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
ユーザーフォームに入力したデ...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー'1004': WorkSheet...
-
Excel VBA マクロ 先頭行の固定...
-
【VBA】全ての複数シートから指...
-
ExcelのVBAを使い、複数シート...
-
VBAで指定シート以外の選択
-
エクセルで通し番号を入れてチ...
-
VBAマクロでシートコピーした新...
-
【部分一致した行を含む8行をシ...
-
excelのマクロで該当処理できな...
-
実行時エラー1004「Select メソ...
-
【ExcelVBA】全シートのセルの...
-
シート削除のマクロで「delete...
-
複数シートに色付きセル(条件つ...
-
Excel VBA リンク先をシート...
-
VBA 入力月で該当シートを選択...
-
エクセルのマクロでアクティブ...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報
はい、処理対象は、受け側.xlsm Sheets("AAA")となります。
私も当初、指定が必要かと思い
Workbooks("受け側.xlsm").Sheets("AAA").Cells(12, "A").Value = "ああああ"
Workbooks("受け側.xlsm").Sheets("AAA").Rows(4).Copy
Workbooks("受け側.xlsm").Sheets("AAA").Rows(6).Insert Shift:=xlDown
と、指定を行ないましたが結果に変化が見られなかったため、質問をさせていただきました。