Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


57530 / 76738 ←次へ | 前へ→

【23944】Re:数あるファイルの中から
発言  kazu  - 05/4/8(金) 13:12 -

引用なし
パスワード
   ▼もえ さん:

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

0 hits

【23081】数あるファイルの中から もえ 05/3/12(土) 13:02 質問
【23088】Re:数あるファイルの中から かみちゃん 05/3/12(土) 19:14 発言
【23418】Re:数あるファイルの中から もえ 05/3/22(火) 16:53 質問
【23439】Re:数あるファイルの中から kazu 05/3/23(水) 13:21 発言
【23941】Re:数あるファイルの中から もえ 05/4/8(金) 12:39 発言
【23942】Re:数あるファイルの中から m2 05/4/8(金) 13:00 回答
【23943】Re:数あるファイルの中から ウッシ 05/4/8(金) 13:01 発言
【23944】Re:数あるファイルの中から kazu 05/4/8(金) 13:12 発言
【23945】Re:数あるファイルの中から ウッシ 05/4/8(金) 13:31 回答
【23442】Re:数あるファイルの中から A 05/3/23(水) 13:39 回答

57530 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free