【Excel VBA】Excelファイルの保存フォルダをワンクリックで開くマクロ

## はじめに

Excelファイルを開いて作業していてその保存場所の近くの別ファイルを開く……

なんてことが良くありますが、毎度`ファイル`→`情報`→`ファイルの保存場所を開く`
が苦しかったのでExcel VBAの個人用マクロで対処しました。


### この記事でできること

![OpenExcelDirectory.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/a3cde2f2-1f3e-c298-1514-962656ed1cbb.gif)

- 通常3クリックかかる「ファイルの保存場所を開く」が1クリックでできるようになります
- クイックアクセスツールバーに登録することでショートカットが適用できます
- Wordでも可


### この記事の対象者

- Excelマクロが使える環境にある人
- 個人用マクロブックが使える環境にある人
- 事務作業をする人


### 動作確認環境

Windows、Excel環境なら大体動作すると思います。
- Windows10
- Microsoft365 Excel 2302 (デスクトップ版)


## 個人用マクロブックにマクロを登録する

空白のブックを立ち上げておいてください。

### 個人用マクロを作ったことがない場合
リンク先に従って作成しておいてください。

https://vbabeginner.net/how-to-create-a-personal-macro-book/


### 開発タブからエディタを開く
`開発`→`Visula Basic`をクリックしてエディタを開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/0279c8f8-55a3-8fcd-ee2f-869d127ba6db.png)

#### 開発タブがない人

今後のことを考えて出しておきましょう。
または`Alt`+`F11`でエディタが直接開きます。

https://support.microsoft.com/ja-jp/office/-%E9%96%8B%E7%99%BA-%E3%82%BF%E3%83%96%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B-e1192344-5e56-4d45-931b-e5fd9bea2d45

### 標準モジュールを追加する

エディタが立ち上がるので次の手順で標準モジュールを追加します

1. `VBAProject(PERSONAL.XLSB)`の上で右クリック
1. 挿入
1. 標準モジュール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/10e8938f-16df-a31e-75a6-7ebed4910347.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/4770ebb3-aaa7-939b-c0a3-14ce74c76d22.png)

※既に標準モジュールが存在する場合は`Module2`、`Module3`と増えていきます

### VBAコードを貼り付ける

下のコードをすべてコピーして真ん中の白い所に貼り付けてください。

```vb:フォルダを開く
    Option Explicit
    Public Sub 開いているブックが保存されているフォルダを開く()

    'INFO: 保存前に使用した際の例外処理
    'NOTE: SharePoint上のブックで実行した場合は「パラメータが間違っています」となり勝手に止まる
    If ActiveWorkbook.Path = "" Then
        MsgBox "ファイルはまだ保存されていません。", vbCritical, "エラー"
        Exit Sub
    End If
    
    'INFO: フォルダを開く処理
    CreateObject("Shell.Application").Open ActiveWorkbook.Path
    
    End Sub

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/4dfa5b33-0f82-d24a-7aaa-cbe6e39810f2.png)
※**表示色は環境ごとに異なります**

### 保存してエディタを閉じる
左上から保存してエディタを閉じまます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/e2e29107-cf31-a256-8a22-000665766c81.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/685501a6-2f92-addc-34ee-70913c53ce1f.png)



## クイックアクセスツールバーに登録する

### クイックアクセスツールバーの設定を開く
1. `ファイル`
1. `オプション`
1. `クイックアクセスツールバー`

### 作成したマクロの追加

`クイックアクセスツールバーのユーザー設定`は`すべてのドキュメントに適用`にしておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/2aff5345-0901-880c-6330-f07aa72f9ec1.png)

1. `コマンドの選択`
1. `マクロ`
1. `PERSONAL.XLSB!開いているブックが…`を選択
1. `追加`
1. `OK`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/f3d3f2e4-c96b-dcfd-d5ac-02a36b64741e.png)

#### アイコン
`変更`でアイコンが変えられます。ツリーっぽいのがおすすめ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/08747eb4-d4a9-b82e-f09a-0787316a0aae.png)


### 保存して閉じる

Excelを閉じてOKです。次回起動時以降も使用できます。
もしメッセージが出たら`保存`をクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/98b8379b-d81e-4e83-ea11-ba2919447820.png)


### 使ってみる
適当なExcelブックを開いて
クイックアクセスツールバーに追加したボタンを押してフォルダが開けば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/fa8c6617-c669-8859-69e6-a31450eef06f.png)


## 参考資料
https://support.microsoft.com/ja-jp/office/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AB%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B-728c83ec-61d0-40bd-b6ba-927f84eb5d2c

## 補足
クイックアクセスツールバーに登録すると`Alt`+`数字`でショートカットできます。

### SharePointのファイル上で実行するとどうなるか
エラーメッセージが出るのみで特に何も起こりません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755504/2f37a878-f93f-a3fc-0da2-86bbae743e67.png)

### Wordで使いたい
コードが少し変わります。`Workbook`→`Document`

```vb:フォルダを開く(Word)
    Option Explicit
    Public Sub 開いているドキュメントが保存されているフォルダを開く()

    'INFO: 保存前に使用した際の例外処理
    'NOTE: SharePoint上のブックで実行した場合は「パラメータが間違っています」となり勝手に止まる
    If ActiveDocument.Path = "" Then
        MsgBox "ファイルはまだ保存されていません。", vbCritical, "エラー"
        Exit Sub
    End If
    
    'INFO: フォルダを開く処理
    CreateObject("Shell.Application").Open ActiveDocument.Path
    
    End Sub

```


## おわりに
あとはボタンを押すだけで保存場所が開きます。ぽちぽち使ってください。

わりと毎日してた作業なので快適度がグンとアップしていい感じです。