プロが教えるわが家の防犯対策術!

http://oshiete.goo.ne.jp/qa/2991655.html
上記のリンクに従い、
auto_input_pw.vbsを c:\に置きます。
その上で、
\\sereve\folder 1\excel.xls サーバ上のxlsファイルを開くバッチを作りました。
--
cd c:\
cscript c:\auto_input_pw.vbs "\\sereve\folder 1\excel.xls" pass
--
というものですが、
これを
cscript c:\aa\auto_input_pw.vbs "\\sereve\folder 1\excel.xlsx" pass
と単純に書き換えたのですが、うまくいきません。
プロパティでみてもexceと関係付けられているのですが・・・

あと、このバッチを応用して任意のファイルを開けないでしょうか
auto_input_pw.vbsがルート直下に沖、
という状態で環境変数を使い、すべてサーバーも端末含めたドライブで同じパスワードをはずせるようにするには環境変数を使えばよいはずなので。

cscript c:\auto_input_pw.vbs "%dp1\*.xls" pass
としましたがうまく起動しません。環境変数がまちがっているのでしょうか。

A 回答 (3件)

追伸


VBSファイル内にパスワードが平文で入っていますので
取扱い(他者に漏れるなど)は、くれぐれも慎重に。
    • good
    • 0

例えば下記のようなVBSファイルを作成し


開きたいファイル(複数可)をこのファイルにドラッグ・ドロップするか
あるいは
自身のSendToフォルダへ下記VBSファイルを置いておき
Excelファイルを右クリックすると『送る』の中の一覧にVBSファイルが
有りますので選択すると開けるハズです。Win7 & Excel2010 で検証。
なお、
パスワードを設定していないファイルをパスワードの指定して開いても
エラーにはなりません。\(^o^)/
Workbooks.open のメソッドのオプションについてはヘルプで確認し
使いやすいように変更してください。
>cscript c:\auto_input_pw.vbs "%dp1\*.xls" pass
は多分、for in do ナントカでやらないとダメだと思います。

Dim oXL
dim colArg
dim strArg
dim pwd
pwd = "ppp" 'ここは適当に変更
Set oXL = CreateObject("Excel.Application")
Set colArg = WScript.Arguments

For Each strArg in colArg
oXL.Workbooks.Open strArg, False _
, , , pwd _
, pwd _
, True _
, True
Next

oXL.Visible = True
oXL.UserControl = True
msgbox "開いたよ~見てみて"
    • good
    • 0

バッチファイルをダブルクリックしてvbsファイルを起動してExcelファイルを開く・・・って


回り道をせずvbsファイルをダブルクリックで開くようにすれば
Option Explicit
Dim objDialog
Dim Ret
Dim myFile
Dim objExcel
Dim strPassword

Set objDialog = CreateObject("UserAccounts.CommonDialog")
With objDialog
.Filter = "Excelファイル|*.xls; *.xlsx; *.xlsm"
.InitialDir = "\\sereve\folder 1"
Ret = .ShowOpen
End With
If Ret = 0 Then
Msgbox "キャンセルしました。"
Wscript.Quit
Else
myFile = objDialog.FileName
End If
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
'パスワードを設定
strPassword = "1234"
objExcel.Workbooks.Open myFile,,,,strPassword
Set objDialog = Nothing
Set objExcel = Nothing
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!