[[20170516101814]] 『ファイル名をセルから取得し別のブックのマクロを』(kyanao☆) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ファイル名をセルから取得し別のブックのマクロを実行する。』(kyanao☆)

book1のセルA1にパス、A2にファイル名が入力されておりA1とA2を取得してファイルを開き(ここまではできています)開いたファイルのtest1というマクロを実行したいのですがbook1のA2からファイル名を取得してtest1というマクロを実行する方法はないでしょうか?

どうかご解答よろしくお願いしますm(_ _)m

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 参考HPです。

 別のブックのマクロを実行(Run メソッド) | ExcelWork.info
http://excelwork.info/excel/runmethod/
(カリーニン) 2017/05/16(火) 10:53

すいません
説明が悪かったかもしれませんが
Application.Run "book1セルA1から取得!test1"
このようにしたくRangeを使い試したのですが失敗してしまいました。
(kyanao☆) 2017/05/17(水) 11:57

マクロを実行するためにだけブックを開くのか、他の作業もするのかが不明ですが、一応
二通りです。

'ブックを開いてマクロ実行
Sub test()

 Dim wb As Workbook
 Dim bkpath As String
 Dim myproc As String
 Dim hikisu1 As String
 Dim hikisu2 As String
  bkpath = "C:\Users\USER\Desktop\bbb.xlsm" '対象のマクロブック/セルで指定する場合は bkpath = ActiveSheet.Cells(1,1).Value & "\" & ActiveSheet.Cells(1,2).Value 等とする
  myproc = "mymsg" '対象のプロシージャ名
  hikisu1 = "hoge" 'プロシージャに渡す引数(一つ目)
  hikisu2 = "hage" 'プロシージャに渡す引数(二つ目)
  Application.ScreenUpdating = False '画面書換え停止
  Set wb = Workbooks.Open(bkpath) 'ブックを開きwbに代入
  Application.Run wb.Name & "!" & myproc, hikisu1, hikisu2
  wb.Saved = True 'ブックを保存したことにする(実際は保存していない)/必要に応じて
  wb.Close 'ブックを閉じる/必要に応じて
  Application.ScreenUpdating = True '画面書換え再開
  Set wb = Nothing
End Sub

Sub test2()

 Dim bkpath As String
 Dim myproc As String
 Dim hikisu1 As String
 Dim hikisu2 As String
  bkpath = "C:\Users\USER\Desktop\bbb.xlsm" '対象のマクロブック
  myproc = "mymsg" '対象のプロシージャ名
  hikisu1 = "hoge" 'プロシージャに渡す引数(一つ目)
  hikisu2 = "hage" 'プロシージャに渡す引数(二つ目)
  Application.ScreenUpdating = False
  Application.Run Dir(bkpath) & "!" & myproc, hikisu1, hikisu2 'ブック開きマクロ実行
  Workbooks(Dir(bkpath)).Close , False 'ブックを上書きせずに閉じる
End Sub


対象のマクロブックのプロシージャ

Function mymsg(Byval msg1 As String,msg2 As String)

 MsgBox msg1 & VbCrlf & msg2
End Function
(カリーニン) 2017/05/17(水) 12:27

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.