[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『選択しているセルをファイル名として開く』(miho)
総括表というファイルのA列にファイル名が入力されています。
A列の選択しているセルをファイル名として、\testの中のフォルダー\a、\b、\cの3つのフォルダーのどれかに入っているファイルを探して開くことはできるのでしょうか?
過去ログから見つけた数式(下の)でやってみたんですけどできませんでした。
Sub OpenFiles()
Dim r As Range For Each r In Selection Workbooks.Open "\test\" & r.Value Next End Sub
どこがいけないのか・・・?
ご存知の方がいるようでしたら教えてください。
< 使用 Excel:Excel2003、使用 OS:Windows8 >
まず、 \Test\ というパス指定はできないね。 cドライブ直下なら c:\Test\ でしょ?
で、複数セルを選択していれば複数ブックを開くということ? それと、セルには、拡張子(.xlsxとか)も入っている?
(β) 2015/06/24(水) 16:01
(通りすがりの超トーシロー) 2015/06/24(水) 16:14
セルには 拡張子もセットされているという前提。元フォルダは C:\Test\ にしています。 また A列に限らず選択されたセルをすべて対象にしています。
Sub Test() Dim fPath As String Dim sPath As Variant Dim fName As String Dim ck As String Dim r As Range Dim ok As Boolean
fPath = "C:\Test\"
For Each r In Selection fName = r.Value ok = False For Each sPath In Array("a", "b", "c") ck = Dir(fPath & sPath & "\" & fName) If ck <> "" Then Workbooks.Open fPath & sPath & "\" & fName ok = True Exit For End If Next If Not ok Then MsgBox fName & " がみつかりません" Next
End Sub
(β) 2015/06/24(水) 16:17
ファイルのあるとこは自分のPCぢゃなく、みんなで使ってるサーバです。
選択するセルはAれるのどれかいっこです。
それからセルの中の名前には(.xlsxとか)はついていません。
説明が下手ですみません。
(miho) 2015/06/24(水) 16:38
fPath = "C:\Test\"←っこを書き換えて試してみたんですけど
「○△□がみつかりません」って表示がでました。
>セルには 拡張子もセットされているという前提。
っということなので見つからないのだと思いますが
(.xlsxとか)がつかない方法を教えてくださいませんか。
どうかよろしくお願いします。
(miho) 2015/06/24(水) 16:56
>>みんなで使ってるサーバです。
ということは fPath = "\\サーバ名\hoge\Test\" といったように書き直したということですね。
>>(.xlsxとか)がつかない方法を教えてくださいませんか。
fName = r.Value & ".xlsx" にして試してください。
(β) 2015/06/24(水) 17:40
>>選択するセルはAれるのどれかいっこです
ということならループの必要はないので、以下でいいですね。(パスは直してください)
Sub Test2() Dim fPath As String Dim sPath As Variant Dim fName As String Dim ck As String Dim r As Range Dim ok As Boolean
If Selection.Count <> 1 Or Selection.Column <> 1 Then MsgBox "A列の単一セルを選択して実行してください" Exit Sub End If
fPath = "C:\Test\"
fName = Selection.Value & ".xlsx" ok = False For Each sPath In Array("a", "b", "c") ck = Dir(fPath & sPath & "\" & fName) If ck <> "" Then Workbooks.Open fPath & sPath & "\" & fName ok = True Exit For End If Next If Not ok Then MsgBox fName & " がみつかりません"
End Sub
(β) 2015/06/24(水) 17:46
私の間違いでA列ではなくB列でした、すみません。
B列にするには
If Selection.Count <> 1 Or Selection.Column <> 1 Then
1のところを2にすればいいのでしょうか?
たびたびすみません><
(miho) 2015/06/24(水) 18:17
If Selection.Count <> 1 Or Selection.Column <> 2 Then
ですね。
(β) 2015/06/24(水) 18:55
Test()もTest2()もバッチリです♪
列を指定するやり方の方が間違いがなさそうなので
そちらを使わせていただくことにします^^
fPathやFor Each sPath In Array("a", "b", "c")を
変更することでいろいろな使い方ができそうです。
ほんとうにありがとうございました。
(miho) 2015/06/25(木) 08:56
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.