概要
- TeamsやOneDrive、SharePoint上のExcelファイルをよく使う場合は、デスクトップにショートカットを作成しておくと便利です。
- Excelからワンボタンで作成できた方が便利だと思ってアドインを作成してみました。
- デスクトップのOneDriveでフォルダを同期してもいいのですが、一ライブラリごとに同期するのが面倒、また同期が禁止されているといった場合もあります。
手動で、デスクトップのExcelで開くショートカットを作成する方法はこちらです。
使い方イメージ
TeamsなどのExcelファイルをデスクトップアプリで開き、アイコンをクリック
するとデスクトップにショートカットが作成されます。
アドインのVBAコード
Excelで新規ファイルを作成し、標準モジュールを追加して以下のコードを貼り付けます。
※開発タブ→VisualBasic→挿入→標準モジュールで標準モジュールを追加し以下のコードに置き換えます。
※開発タブが出ていない場合はリボンの設定から表示が必要です。
Option Explicit
Private Const protocol_ As String = "https://"
'
Public Sub CreateShortcut()
Dim appName As String: appName = ThisWorkbook.Name
Dim fileName As String, filePath As String, shortcutExt As String
fileName = ActiveWorkbook.Name
filePath = ActiveWorkbook.FullName
shortcutExt = ".lnk"
If ActiveWorkbook.Path = "" Then MsgBox "ブックが保存されていません", vbInformation, appName: Exit Sub
If IsOnlineFile(filePath) Then
filePath = "ms-excel:ofe|ofc|u|" & filePath
shortcutExt = ".url"
End If
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
Dim desktop As String, shortcutName As String
desktop = wsh.SpecialFolders("Desktop")
shortcutName = desktop & "\" & fileName & shortcutExt
If Dir(shortcutName) <> "" Then
If MsgBox("既に作成済みです。上書きしますか?", vbYesNoCancel) <> vbYes Then
Exit Sub
End If
End If
Dim shortcut As Object
Set shortcut = wsh.CreateShortcut(shortcutName)
shortcut.TargetPath = filePath
shortcut.Save
MsgBox "デスクトップショートカットを作成しました。" & vbNewLine & fileName, vbInformation, appName
End Sub
Private Function IsOnlineFile(path As String) As Boolean
If Left(path, Len(protocol_)) = protocol_ Then
IsOnlineFile = True
Else
IsOnlineFile = False
End If
End Function
簡単に解説
- 現在開いているブックのパスは
ActiveWorkbook.FullName
で取得可能です。 - ローカルファイルならC:\~、オンラインファイルならhttps://~になります。
- オンラインファイルの場合はSharePointのパスのコピーから取得できるURLになります。
- これにURIスキーマである
ms-excel:ofe|ofc|u|
をつけて開くようにショートカットを作成すると、クリックしたときにデスクトップのExcelでオンラインファイルを開けるようになります。
アドインとしての登録方法
アドインの登録
- 先程のファイルで、名前をつけて保存→ファイルの種類でExcelアドインを選択して保存します。
- ※保存フォルダが自動的にアドインのフォルダに設定されます。
- C:\Users\UserName\AppData\Roaming\Microsoft\AddIns
- Excelを開いて開発タブ→Excelアドインを開き、先程保存したアドインにチェックをつけ有効化します。
ショートカットアイコンから呼び出せるように設定
-
コマンドの選択をマクロにし、先程登録したアドインのプロシージャ名、CreateShortcutを選択
-
変更で分かりやすいアイコンに変更し、追加をクリックして保存します。
使い方
-
TeamsやSharePointからデスクトップアプリでExcelを開く。
-
先程登録したショートカット作成アイコンをクリックする。
-
クリックするとデスクトップのExcelでファイルが開かれます。
※オンプレファイルの場合も通常のショートカットとして利用可能です。
不具合的なもの
Excelアドインを登録した状態でオンラインファイルを開くと何故か空白のウィンドウが開かれてしまうことがあります。
対処方法は不明です。
Excelアドイン有効化のチェックを外すと消えます。アドイン実行のアイコンを登録後なら外しても使えます。
おまけ
やっぱりOutlookが一番だ、なんていってるおじさんにTeamsのファイルをデスクトップアプリで開かせる場合、
作成されたショートカットカットをファイルサーバーに置き、ファイルへのリンクと同じように
<file://ショートカットのパス.url>としてリンクを貼ってあげると、パスをクリックしたときにデスクトップアプリで開きます。