Batch file to VBScript file (15) at 2001.January
補遺 Appendix A WSHでExcelやWordの定数を使うには wc0993.exe ← 自己展開。リンクが届かなかったらごめん。 WordやExcel自体で他のプログラムから定数を参照できるようにする。という設定も できるようですが、こいつを展開するとOffice製品で使用される定数の値が一覧表で 手に入ります。WSHで使う場合、「Global」を消さないとNGのようです。が、それは 適当なツールで痴漢^H^H置換して下さい。 汎用的な手段として紹介しますです。 Appendix B WSHでダイアログからファイル選択 …以前、「任意のCOMが動かせ……ない」と題してこの件に関して書きました。 あれはVisual Basic for Windowsが入っていれば動くのだが、そうでないと どうしようもない。 しかし、次の方法でファイル、あるいはフォルダのフルパスが得られることを確認 したので紹介します。 会社のマシンで動作は確認済み。ただし自宅マシンにIE5を入れるとfdiskの可能性が あるので、自宅では一切検証してません(ま、フォルダの選択まではできるけど)。 ということで、WSHでのファイル選択をGUIでやりたいばかりにExcelやWordを起動 する。ということをしなくても何とかなります。です。 #コモンダイアログではないので、いまいちなのではあるが、これが精一杯です。 MSの*次バージョン*に期待しましょう(^^;; ' VBScript (WSH)でGUIからファイルを選択するサンプル ' ' Visual Basicがインストールされていなくても有効 ' ただしファイルを選択するためにはIE5以降がインストールされている ' ことが条件(Shell32.dllのバージョンに依存) Option Explicit Const ssfDRIVES = &h11 Const BIF_RETURNONLYFSDIRS = &h0001 Const BIF_EDITBOX = &h0010 ' IE5 Const BIF_BROWSEINCLUDEFILES = &h4000 ' IE5 ' Get folder or file (file is only valid IE 5 or lator) Function GetFolder(bFile) Dim oShell Dim oFolder bFile = False ' assume select as a Folder path Set oShell = CreateObject("Shell.Application") Set oFolder =_ oShell.BrowseForFolder(0, "Select folder (or file, if you can do it!)",_ BIF_EDITBOX Or BIF_BROWSEINCLUDEFILES, ssfDRIVES) Set oShell = Nothing If Not oFolder Is Nothing Then On Error Resume Next GetFolder = oFolder.Items.Item.Path If Err = 7 Then ' it may be a File 'On Error Goto 0 Dim Fn, i Err.Clear bFile = True Fn = oFolder.Title Do Set oFolder = oFolder.ParentFolder i = InStr(oFolder.Title, ":") If i <> 0 Then Fn = Mid(oFolder.Title, i-1, 2) & "\" & Fn Exit Do End If Fn = oFolder.Title & "\" & Fn Loop Until Err <> 0 If Err <> 0 Then Fn = "" ' Not a File GetFolder = Fn End If Set oFolder = Nothing End If End Function Dim path, bfi path = GetFolder(bfi) If path <> "" Then Dim note If bfi Then note = "File" Else note = "Folder" MsgBox path,, note & " path" End If ' EOF (EOF)