Excel VBA質問箱 IV

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

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


3415 / 13645 ツリー ←次へ | 前へ→

【62389】サーバーからの読み込み 亜矢 09/7/16(木) 11:24 質問[未読]
【62390】Re:サーバーからの読み込み kanabun 09/7/16(木) 11:52 発言[未読]
【62399】Re:サーバーからの読み込み 亜矢 09/7/16(木) 17:01 お礼[未読]
【62391】Re:サーバーからの読み込み ワイルドキャッツ 09/7/16(木) 12:31 発言[未読]
【62392】Re:サーバーからの読み込み ワイルドキャッツ 09/7/16(木) 12:36 発言[未読]
【62393】Re:サーバーからの読み込み kanabun 09/7/16(木) 13:02 発言[未読]
【62394】Re:サーバーからの読み込み ワイルドキャッツ 09/7/16(木) 13:24 発言[未読]

【62389】サーバーからの読み込み
質問  亜矢  - 09/7/16(木) 11:24 -

引用なし
パスワード
   よろしくお願いします。
今までは下記のプログラムの通り自分のパソコン内でデータを処理していましたが、mypathの部分はネットワーク(サーバー)に変わりました
mypathを"\\・・・以下のサーバーのPathにしましたが、
データが読めませんでした。解決方法を教えて頂きたいと思います。
また、参照設定は何を参照設定にすればいいのかも教えて頂きたいと
思います。
 

Sub データ読み込み()
Dim MyFso As Scripting.FileSystemObject
Dim myTxt As Scripting.TextStream
Dim Mat() As String
Dim mystr As String
Dim mypath As String
Dim myfilename As String
Dim myFF

Erase MMat
XX = 0
mypath = "C:\Users\aya\SEIBAN\"
myfilename = Dir(mypath, 0)
Do While Len(myfilename) > 0
  myFF = mypath & myfilename
  myfilename = Dir()


Set MyFso = CreateObject("scripting.filesystemobject")
Set myTxt = MyFso.OpenTextFile(Filename:=myFF, IOMode:=ForReading)
 途中省略

Loop
end sub

【62390】Re:サーバーからの読み込み
発言  kanabun  - 09/7/16(木) 11:52 -

引用なし
パスワード
   ▼亜矢 さん:
こんにちは。

mypathの部分はネットワーク(サーバー)に変わりました
>mypathを"\\・・・以下のサーバーのPathにしましたが、
>データが読めませんでした。

>mypath = "C:\Users\aya\SEIBAN\"
>myfilename = Dir(mypath, 0)
>Do While Len(myfilename) > 0
>  myFF = mypath & myfilename
>  myfilename = Dir()
>Loop

ローカルのときは そのコードで実行可能だったんですか?
それであれば、
> "\\・・・以下のサーバーのPath
の設定が何かちがっていたということは 考えられませんか?


>また、参照設定は何を参照設定にすればいいのかも

CreateObject関数でマクロが走り出してから、オブジェクトを作成する
のであれば、参照設定は不要です。

Dim MyFso As Object
Dim myTxt
のように、ぼんやりと(^^)総称オブジェクトで変数を宣言しておいて、

> Set MyFso = CreateObject("scripting.filesystemobject")
> Set myTxt = MyFso.OpenTextFile(Filename:=myFF, IOMode:=ForReading)
> 途中省略
で実行すればいけると思います。

【62391】Re:サーバーからの読み込み
発言  ワイルドキャッツ  - 09/7/16(木) 12:31 -

引用なし
パスワード
   Dir関数だとサーバー上のドライブは見えないですね。
(マイコンピュータにマウントされているのなら見えると思いますが。)
CreateObject("WScript.Shell").CurrentDirectory = "\\・・・以下のサーバー"
で、カレントディレクトリーを異動させてください。
そうすれば目えます。

【62392】Re:サーバーからの読み込み
発言  ワイルドキャッツ  - 09/7/16(木) 12:36 -

引用なし
パスワード
   追加、
上記カレントディレクトリーに加え、Dir関数だとパスに文字制限があったと、
思いますから、その辺も考えてみてください。

【62393】Re:サーバーからの読み込み
発言  kanabun  - 09/7/16(木) 13:02 -

引用なし
パスワード
   ▼ワイルドキャッツ さん:
>Dir関数だとサーバー上のドライブは見えないですね。


Dir関数はネットワークドライブも検索対象にできます
h t tp://www.big.or.jp/~seto/VBA/officevba-p1.htm

ただそこにも書いてあるように、
接続が解除されているネットワークパスを指定すると、
Dir関数はエラーとなりますし、
UNCパスに対して Dir関数を適用すると間違った情報を返すことも
あるようですから、
Search Using OpenFile API Instead of Dir/Dir$ Function
h t tp://support.microsoft.com/?scid=kb%3Ben-us%3B168519&x=2&y=16

FileSystemObjectなどを使ってループしたほうが無難なんでしょうね。

【62394】Re:サーバーからの読み込み
発言  ワイルドキャッツ  - 09/7/16(木) 13:24 -

引用なし
パスワード
   ▼kanabun さん:
>Dir関数はネットワークドライブも検索対象にできます
>h t tp://www.big.or.jp/~seto/VBA/officevba-p1.htm
あら、試してみたらDir関数でブック名が取れるようになってますね。(2002)
でも、97の時はカレントディレクトリーを移動させないと取れなかったです。
どちらも、サーバーとはつながった状態で....。

【62399】Re:サーバーからの読み込み
お礼  亜矢  - 09/7/16(木) 17:01 -

引用なし
パスワード
   ▼kanabun さん:
>▼亜矢 さん:
>こんにちは。
>
>mypathの部分はネットワーク(サーバー)に変わりました
>>mypathを"\\・・・以下のサーバーのPathにしましたが、
>>データが読めませんでした。
>
>>mypath = "C:\Users\aya\SEIBAN\"
>>myfilename = Dir(mypath, 0)
>>Do While Len(myfilename) > 0
>>  myFF = mypath & myfilename
>>  myfilename = Dir()
>>Loop
>
>ローカルのときは そのコードで実行可能だったんですか?
>それであれば、
>> "\\・・・以下のサーバーのPath
>の設定が何かちがっていたということは 考えられませんか?
>
>
>>また、参照設定は何を参照設定にすればいいのかも
>
>CreateObject関数でマクロが走り出してから、オブジェクトを作成する
>のであれば、参照設定は不要です。
>
>Dim MyFso As Object
>Dim myTxt
>のように、ぼんやりと(^^)総称オブジェクトで変数を宣言しておいて、
>
>> Set MyFso = CreateObject("scripting.filesystemobject")
>> Set myTxt = MyFso.OpenTextFile(Filename:=myFF, IOMode:=ForReading)
>> 途中省略
>で実行すればいけると思います。
ありがとうございました。Pathを再確認したら実行できました。
お手数をお掛けしました。

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