5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

パスワード付きのExcelを開くバッチファイル

Posted at

概要

パスワードが設定されたExcelを開くたびにパスワードを手入力するのが面倒だったので、指定したパスワードで開いてくれるバッチを用意した。

実行環境

  • Windows10
  • Office2013

参考URL

コード

以下のコードをコピーして、開きたいExcelのファイルパス(絶対パス)とパスワードを書き換えてOpenPassExcel.batとかの名前で保存する。
(参考URLがVBSなのにJScriptで書いているのは完全に私の好みです・・・)

OpenPassExcel.bat
@if (0)==(0) echo off

cd %~dp0

rem ファイルパスとパスワード
set xlsx="開きたいExcelファイルの絶対パス"
set pass="開きたいExcelファイルのパスワード"

rem ファイルが見つからなければ終了
if not exist %xlsx% (
  echo ファイルどこ行った・・・
  timeout 10
  exit /b
)

rem 自分自身をJScriptとして実行
cscript //nologo //E:JScript "%~f0" %xlsx% %pass%

exit /b
@end


// main処理呼び出し
main();


// main処理
function main() {
  var args = WScript.Arguments;
  
  if (args.length == 0) {
    print("引数がありません");
    WScript.Quit(-1);
  }
  
  // Excelファイルパス
  var xlsx = args(0);
  // Excelファイルのパスワード
  var password = args(1);
  
  print(xlsx + "を開きます");
  
  // パスワード付きのExcelを開く
  OpenExcelFile(xlsx, password);
};


// コンソール表示用
//   str: 表示する文字列
function print(str) {
  WScript.Echo(str);
};


// パスワード付きのExcelを開く
function OpenExcelFile(xlsx, password) {
  var excel = WScript.CreateObject("Excel.Application");
  var book = excel.Workbooks.Open(xlsx, null, false, null, password);
  excel.Visible = true;
};

その他

ダブルクリックでサクッと実行したかったのでshebang記法でバッチファイルにJScriptを埋め込んで1ファイルにしている。
呼び出し用のバッチ(.bat)と実処理用のスクリプト(.jsとか.vbs)に分けたり、Excelとパスワードを外部定義にしてもいい。
スクリプトにファイルパスを直書きする場合は\\\にエスケープする必要があるので注意。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?