VBA初心者です 以下の2つを作りたいです。 ①:セルB3にパスおよびファイル設定後、ファイルを実行したいです。

VBA初心者です 以下の2つを作りたいです。 ①:セルB3にパスおよびファイル設定後、ファイルを実行したいです。 任意の格納先から実行したいです(デスクトップからやCドライブ直下などから) ②:実行ボタンを押下後、青で囲まれた部分に値を貼り付けたいです この実行ボタンは、実行中は他のエクセルファイルをオープンしないで作ってます。 以下がコードです。 Private Sub SelectButton_Click() Dim FType, Prompt As String Dim FPath As Variant Dim WS As Worksheet Set WS = Worksheets("Sheet1") '選択できるファイルの種類をxls及びxlsxに限定 FType = "Excelブック,*.xls; *.xlsx;" 'ダイアログのタイトルを指定 Prompt = "Excelファイルを選択して下さい" 'ファイル参照ダイアログの表示 FPath = Application.GetOpenFilename(FType, , Prompt) If FPath = False Then 'ダイアログでキャンセルボタンが押された場合は処理を終了します End End If 'B3セルにファイル名をセット WS.Cells(3, 2).Value = FPath End Sub Private Sub JikkouButton1_Click() Range("D9") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R10C6") Range("F9") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R12C6") Range("H9") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R14C6") Range("J9") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R23C5") Range("D10") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R32C5") Range("F10") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R36C5") Range("H10") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R38C5") Range("J10") = ExecuteExcel4Macro("'C:\Test20200806\[Part0806.xls]Sheet1'!R39C5") End Sub JikkouButton1_Click()の中にあるC:\Test20200806\を任意の格納先で指定したいです。 なので、SelectButton_Click()とリンクできてないです。。

画像

Visual Basic | Excel26閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

Private Sub JikkouButton1_Click() Dim pos As Long Dim Target As String pos = InStrRev(Cells(3, 2).Value, "\") Target = "'" & Left(Cells(3, 2).Value, pos) & "[" & Mid(Cells(3, 2).Value, pos + 1) & "]" Range("D9") = ExecuteExcel4Macro(Target & "Sheet1'!R10C6") Range("F9") = ExecuteExcel4Macro(Target & "Sheet1'!R12C6") Range("H9") = ExecuteExcel4Macro(Target & "Sheet1'!R14C6") Range("J9") = ExecuteExcel4Macro(Target & "Sheet1'!R23C5") Range("D10") = ExecuteExcel4Macro(Target & "Sheet1'!R32C5") Range("F10") = ExecuteExcel4Macro(Target & "Sheet1'!R36C5") Range("H10") = ExecuteExcel4Macro(Target & "Sheet1'!R38C5") Range("J10") = ExecuteExcel4Macro(Target & "Sheet1'!R39C5") End Sub