|
▼もえ さん:
Sheet1を対象に処理すると考えると・・・。
こんな感じになると思います。
Split97は Splitの代用関数なので エクセルが2000以降ならSplitを使って下さい。
Sub S()
i = 2
AryFil = Application.GetOpenFilename("(*.XLS),*.XLS", , "ファイル選択", , True)
If Not IsArray(AryFil) Then
MsgBox "ファイルを選択してから実行して下さい。"
Exit Sub
End If
For Each Fil In AryFil
FilTmp = Split97(Fil, "\")
F_Nm = FilTmp(UBound(FilTmp))
F_Pth = Left(Fil, Len(Fil) - Len(F_Nm))
With Range("A" & i)
.FormulaR1C1 = "='" & F_Pth & "[" & F_Nm & "]Sheet1'!R2C1"
.Value = .Value
End With
i = i + 1
Next
End Sub
Function Split97(ByVal StrTmp, ByVal Strbunri)
Dim Split97Tmp() '配列一時格納用
Dim i As Long 'カウンタ変数
Dim IntTmp As Long '区切り文字位置格納用変数
IntTmp = InStr(1, StrTmp, Strbunri)
If IntTmp = 0 Then
ReDim Split97Tmp(0)
Split97Tmp(0) = StrTmp
Else
Do Until IntTmp = 0
ReDim Preserve Split97Tmp(i)
Split97Tmp(i) = Left(StrTmp, IntTmp - 1)
i = i + 1
StrTmp = Mid(StrTmp, IntTmp + Len(Strbunri))
IntTmp = InStr(1, StrTmp, Strbunri)
Loop
ReDim Preserve Split97Tmp(i)
Split97Tmp(i) = StrTmp
End If
Split97 = Split97Tmp
End Function
|
|