[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル名をセルから取得し別のブックのマクロを実行する。』(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
'ブックを開いてマクロ実行
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.