PC でフォルダを開いて作業することが多いです。
Excel ファイルを新規で作ってすぐにその開いているフォルダに保存したい! って思うことありませんか?
アプリを起動して「名前を付けて保存」で新規保存する場合、保存先のフォルダを選択する必要がありますが
私はこの選択が面倒なんです。。
フォルダどこだ?? ってなることが多いです。
とりあえずフォルダの中にすぐにファイルが作成されて、あとでそのファイルの名前を変更する方が楽だと思いませんか??
ということで、VBScript とショートカットキーを使ってそのような仕組みを考えてみました。
1、開いているフォルダにとりあえず Excel ファイルを保存する仕組み
どのような仕組みを作ったか説明します。
作業の流れは以下のようになります。
①開いているフォルダのパスをコピー
フォルダを開いた状態でショートカットキー「Alt + D」を押せばフォルダのパスを選択した状態になります。
パスを選択した状態になったらショートカットキー「Ctrl + C」でコピーします。
②VBS を実行してフォルダのパスを貼り付け
次に VBS を実行します。
VBS の実行にはショートカットキーを使います。
ショートカットキーの設定方法は以下の記事を参考にしてください↓
今回「Ctrl + Shift + F」で VBS が実行するように設定しました。
VBS が実行すると入力用のボックスが出てきます。
ここで、先ほどコピーしたパスを貼り付け(Ctrl + V)て「OK」を押します。
するとフォルダに「新規ファイル.xlsx」という Excel ファイルができあがります。
③作成された Excel ファイルの名前を変更する
作成された Excel ファイルを選択して「F2」を押しファイル名を変更できます。
以上が一連の流れになります。
もう一度ざっと書きます。
↓
「Ctrl + C」でコピー
↓
「Ctrl + Shift + F」で VBS を実行して入力用のボックスを出す
↓
ボックスを選択して「Ctrl + V」で貼り付け
↓
作成された Excel ファイルを選択して「F2」
↓
名前変更
自分的には Excel ファイルを「名前を付けて保存」する場合と比べて、フォルダを探す手間が省けたので楽になりました。
2、新規の Excel ファイルをフォルダに保存する VBS
VBS とは? 使い方
さて、VBS というのはマクロを作るためのプログラミング言語です。
VBA と記述が似ています。
VBS コードはメモ帳に記述します。
そのメモ帳を保存するときに拡張子を「.vbs」とすると以下のようなファイルができあがります。
そして、このファイルをダブルクリックすれば VBS が実行します。
ファイルのダブルクリックで実行できるのが VBS の特徴なのですね。
さて、基本的にはこのように実行する VBS ですが、今回はこの実行をショートカットキー「Ctrl + Shift + F」で行なっているのです。
ショートカットキーの設定については以下を参考にして下さい(先にも一度示しました)↓
新規の Excel ファイルをフォルダに保存する VBS コード
以下に VBS コードを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
On Error Resume Next Dim Excel_Obj 'Excel オブジェクト' Dim Book_Obj 'Workbook オブジェクト' Set Excel_Obj = WScript.CreateObject("Excel.Application") Excel_Obj.Workbooks.Add Set Book_Obj = Excel_Obj.ActiveWorkbook FilePath = InputBox("フォルダのパスを入力してください。") Book_Obj.SaveAs FilePath & "\新規ファイル.xlsx" Book_Obj.Close |
VBS コード説明
エラーを無視
冒頭に以下を記述しておきます。
1 |
On Error Resume Next |
これてエラーが発生しても、停止してダイアログが出ることがなくなります。
変数の定義
変数の定義です。
Excel そのものをオブジェクトとして入れるための変数「Excel_Obj」と
Excel のWorkbook をオブジェクトとして入れるための変数「Book_Obj」です。
1 2 |
Dim Excel_Obj 'Excel オブジェクト' Dim Book_Obj 'Workbook オブジェクト' |
Excel オブジェクトの設定
Excel をオブジェクトとして変数「Excel_Obj」に入れています。
Set Excel_Obj = WScript.CreateObject(“Excel.Application”)
Excel オブジェクトに新規ワークブックを追加
上で作った Excel オブジェクトに新規ワークブックを追加します。
1 |
Excel_Obj.Workbooks.Add |
Workbook オブジェクトの設定
アクティブなワークブックをオブジェクトとして変数「Book_Obj」に入れています。
1 |
Set Book_Obj = Excel_Obj.ActiveWorkbook |
これで先に作ったワークブックが変数「Book_Obj」に入ります。
インプットボックスを表示、入力した内容を変数に入れる
以下のように記述すると入力用のボックスを表示します。
※メッセージは “” で囲う必要あり
以下のようなボックスが表示されます。
今回はこのように記述しています↓
1 |
FilePath = InputBox("フォルダのパスを入力してください。") |
これによりインプットボックスに入力した内容が変数「FilePath」に入ります。
Workbook を保存する
SaveAs メソッドを使って Workbook を「新規保存」します。
以下のように記述します。
ファイルのパスは変数「FilePath」を使って指定します。
1 |
Book_Obj.SaveAs FilePath & "¥新規ファイル.xlsx" |
こうすると変数「Book_Obj」に入れられた新規のワークブックが、 FilePath で表されるフォルダの中に「新規ファイル.xlsx」という名前で保存されます。
Workbook を閉じる
Workbook を閉じます。
1 |
Book_Obj.Close |
3、まとめ
VBS を使って空の Excel ファイルを開いているフォルダに保存するコードを作り、作業を仕組化してみました。
とりあえず Excel を新規保存するときのフォルダを探す過程が無くなったのは自分にとってはけっこううれしいことです。
どれだけ使えるかこれから試してみたいと思います。