[[20230131121605]] 『IPアドレスを使ってファイルを開く』(SSS) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IPアドレスを使ってファイルを開く』(SSS)

仕事でIPアドレスを使ってファイルを開くことを考えています。
テスト的に自身のパソコンのIPアドレスでフォルダを開こうと試みましたが自身のIPアドレスでは無効になるのでしょうか?
それともコードが間違っているのでしょうか?

Dim Obj As Object
Set Obj = CreateObject("Wscript.Shell")
Obj.Run ("NET USE \\***.***.*.*\***\***\***\****")

CreateObject("Shell.Application").Open "\\***.***.*.*\***\***\***\****"

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 ネットワークアドレス使う場合、共有フォルダに設定してないと開かないと思いますけど、ご確認されましたか?
 csvを既定のプログラムで開く場合、こんな感じで開けましたよ
    Sub test()
        With CreateObject("WScript.Shell")
            .Run "\\12.345.67.89\共有フォルダ\test.csv"
        End With
    End Sub

(稲葉) 2023/01/31(火) 12:45:36


ありがとうございます。できました。ネットワークアドレスを使う場合は共有フォルダ設定が必要なんですね。

今回質問で書いたものがコピペして使ったんですがNET USEってのは必要ですか?NET USEってのがどういう指示ですか?ネットワークアドレスを使うていうそのままですか?NET USEがないコードもあり今回質問させていただきました。

(SSS) 2023/01/31(火) 13:46:05


>NET USEってのは必要ですか?
その前に(稲葉)さんのコード試されたんですか。
(q5) 2023/01/31(火) 14:10:53

言葉足らずですみません。文頭の できました。はご指示いただいたものでできましたという意味です。すみません。
(SSS) 2023/01/31(火) 14:15:23

 私も詳しくないので何とも言えませんけど
 Net Useってドライブレターの割り付けですよね?
 結論としては必要ないような。

 理由は、やりたいこと
  =ネットワークアドレスを指定してファイルを開くこと
   =ローカル環境(ドライブレター)に依存せず、ファイルにアクセスする
 と、勝手に思っているのですが合ってます?

 話をコードに戻すと、ファイルの存在有無等をチェックするなら、
 DirかFileSystemObject(FSO)を使ったほうがコーディングしやすいと思います。

 以下FileSystemObjectの例です。

    Sub test()
        Dim fso As Object
        Dim wb As Workbook
        Const myPath As String = "\\12.345.67.89\共有フォルダ\test.csv"
        Set fso = CreateObject("Scripting.FileSystemObject")
        If fso.FileExists(myPath) = True Then
            On Error Resume Next
                Set wb = fso.getfilename(myPath)
            On Error GoTo 0
            If wb Is Nothing Then
                Set wb = Workbooks.Open(myPath)
            Else
                MsgBox "同じファイル名を開いています。閉じてから実行してください"
                Exit Sub
            End If
        Else
            'ファイルがなければ、処理を中断
            Exit Sub
        End If

        With wb
            'ここにファイルに対する処理を記載する
        End With
    End Sub

(稲葉) 2023/01/31(火) 16:39:10


ありがとうございます!ご指示のものでできました。NET USEは深く考えなくていいですね。やりたいことはご回答あった通りでございます。

それとテキストファイルを開くことをしました。ファイルに対する処理はしていないのですが、Excel形式でテキストファイルが開きました。最終的にはこうしたかったのですが自動的にそういう形式で開くのでしょうか?
(SSS) 2023/01/31(火) 18:01:43


 >                Set wb = Workbooks.Open(myPath)
 ワークブックで開くようにしているので、テキストファイルは開けますが、docとかは現状のままだと無理です。

 テキストファイル(txt)を開いて、エクセルに転記又は計算等でしたら、FileSystemObjectのTextStreamや、Openステートメントが一般的かと思います。
https://vbabeginner.net/howto-use-filesystemobject-textstream/
https://excel-ubara.com/excelvba1/EXCELVBA416.html

 メモ帳などで開く場合は、Shellを使うとよいかもしれないです。(ただし、これだと中身が取りにくい)
 Shell "notepad " & myPath
https://excel-ubara.com/excelvba1/EXCELVBA422.html 

(稲葉) 2023/01/31(火) 18:18:52


ありがとうございます。
Workbooksとしてるからなんですね。またShell "notepad " & myPathという参考例もありがとうございます。
実際やりたい事がわかったので大変勉強になりました。ありがとうございました。 
(SSS) 2023/01/31(火) 19:33:27

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.