Excelからバッチファイルを引数つきで起動
Hyperlink関数ではだめだった
Hyperlink関数でやろうとしたが、 セルに記載された引数を使っての引数渡しでのバッチ起動ができなかったので、結局、マクロでやった。
マクロからShell関数でできる
Sub Execute() Dim cmd As String cmd = "C:\Windows\notepad.exe c:\memo.txt" Shell cmd End Sub
これでmemo.txtがメモ帳で開くことができます。
今度は、 引数をマクロに渡します。
Sub Execute(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String) Dim cmd As String cmd = "C:\sample.bat " cmd = cmd & "c:memo.txt " cmd = cmd & " " & param1 cmd = cmd & " " & param2 cmd = cmd & " " & param3 Shell cmd End Sub
ダブルクリックした場所の相対位置は、Offsetで取得できる
今度は、セルに入力された情報を引数にして、マクロを実行します。 4行目より下で4列目をダブルクリックするとマクロが引数付きで実行されます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not (Target.Row >= 4 And Target.Column = 4) Then Exit Sub Execute Target.Offset(0, -3).Value, Target.Offset(0, -2).Value, Target.Offset(0, -1).Value End Sub
1列目と2列目と3列目が引数として渡されます。
これを応用すれば、いろんなことがExcelでできる!!!