- 締切済み
パスワード保護されたxlsxをコマンドラインから開
http://okwave.jp/qa/q2991655.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 としましたがうまく起動しません。環境変数がまちがっているのでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
追伸 VBSファイル内にパスワードが平文で入っていますので 取扱い(他者に漏れるなど)は、くれぐれも慎重に。
- nicotinism
- ベストアンサー率70% (1019/1452)
例えば下記のような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 "開いたよ~見てみて"
- watabe007
- ベストアンサー率62% (476/760)
バッチファイルをダブルクリックして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