0
0

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 3 years have passed since last update.

DosでOfficeのインストール場所を取得してselfcert.exeを起動する

Last updated at Posted at 2020-12-22

社員に自己署名入りデジタル証明書を発行させたくて作りました。
(メール誤送信防止用にoutlookのVBAコードを仕込むため)

VBEのイミディエイトウィンドウからshell "selfcert.exe"と打たせてもよいのですが、もっと簡単な手順にしたくて<オフィスのインストール場所>\selfcert.exeをたたくバッチファイルを作成しました。

echo off
for /f "usebackq" %%t in (`assoc .xlsx`) do set work=%%t
set work1=%work:~6%
for /f "usebackq delims=" %%a in (`ftype %work1%`) do set work2=%%a
call :edit_filename %work2%
exit /b
:edit_filename
for /f "usebackq delims=" %%a in (`"%~dp2\selfcert.exe"`) do echo %a

コマンドの解説)
assoc .xlsx.xlsx=Excel.Sheet.12のようにエクセルのタイプが返ってくるので、:~6%Excel.Sheet.12を取得

ftype Excel.Sheet.12とやると
Excel.Sheet.12="C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /dde
のように返ってきます。

スペースで結果が区切られないようにデリミタの指定はdelims=のように無しにしています。

この結果をサブルーチンで受け取って
"%~dp2\selfcert.exe"
で第2引数からドライブレターとパスを取ることで”オフィスのインストール場所にあるselfcert.exe”をキックする仕組みです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?