Qiitaからの記事移行
概要
- SharePoint OnlineのドキュメントライブラリやOneDriveに置かれたOfficeファイルを、デスクトップから、デスクトップアプリで開く方法です。
- SharePointの詳細設定でリンククリック時にデスクトップで開く設定はできるのですが、Web画面を一旦開く必要があり、デスクトップから直接開けると便利です。
- Officeファイル限定です。設定すると以下のようなデスクトップアイコンができあがります。
作成方法
SharePointの場合
Excelファイルのショートカット作成を例にします。
- SharePointのファイル→ファイル名右側の「︙」→詳細をクリック
※又はファイルにチェックをつけて右上のⓘマーク Windowsのデスクトップ→新規作成→ショートカット
- 「項目の場所」のテキストボックスに「ms-excel:先程コピーしたURL(https://~)」を貼り付ける
- ショートカットの名前をつける
- これで、作成されたショートカットをクリックするとデスクトップのExcelでSharePointのファイルが開きます。
- 編集結果もちゃんと反映されています。
- 前提条件として、デスクトップのOfficeも同じ365アカウントでログインしていないと認証できません。
普通にms-excel:https://~で開くと読み取りモードとなり、編集をクリックして初めて編集可能になります。
※個人的にはこれが使いやすい。
開いたときに編集モードにしたい場合はms-excel:ofe|ofc|u|https://~とします。
※SharePointから開くときにアクセスしているURLと同じです。
ExcelなどのOfficeデスクトップアプリからもコピーできます
ファイル→情報→パスのコピーからコピーします。
アプリごとの開き方まとめ
Office | モード | ショートカット |
---|---|---|
Excel | 読取モード | ms-excel:https://~ |
Excel | 編集モード | ms-excel:ofe|ofc|u|https://~ |
Word | 読取モード | ms-word:https://~ |
Word | 編集モード | ms-word:ofe|ofc|u|https://~ |
PowerPoint | 読取モード | ms-powerpoint:https://~ |
PowerPoint | 編集モード | ms-powerpoint:ofe|ofc|u|https://~ |
Teams内のOfficeファイルの場合
Teamsのファイルも開けます。
- Teamsのファイルタブ→右上の「SharePointで開く」をクリックする。
- 後は上記のSharePointの手順でショートカットを作成します。
※Teamsでチームを作成すると裏側にSharePointサイトが作成され、TeamsのファイルはSharePointの機能で管理されます。
URIスキーマ
ms-excel:の部分はWindowsのURIスキーマです。
WebからTeamsなどのデスクトップアプリを起動する際に使用されるものですね。
スキーマの一覧は下記から確認できます。
Wordファイルならms-word、パワポならms-powerpointとすると、それぞれのアプリで開けます。
https://docs.microsoft.com/ja-jp/office/client-developer/office-uri-schemes
頻繁に作成するのであればPowerShellで自動化してやると便利です。 自分の環境のURLでしか試してませんが一応コードを載せておきます。
Add-Type -AssemblyName System.Web $ErrorActionPreference = 'stop' $url = Read-Host "SharePointURLを入力してください。" $url -match "^https?://[a-z0-9\-]+?(-my\.sharepoint\.com|\.sharepoint\.com)\/" | Out-Null if($Matches.Count -eq 0){ Write-Host "SharePointまたはOneDriveのパスを貼り付けてください" return } [string]$prefix = switch($Matches.1){ {$_ -eq '-my.sharepoint.com'}{ 'OneDrive' break } Default{ 'SPO' } } $Matches.Clear() [string]$fileName = [System.Web.HttpUtility]::UrlDecode($url.Split('/')[-1]) [string]$fileExt = $fileName.Split(".")[-1] [string]$uriSchema = switch($fileExt){ {$_ -in 'xls','xlsx','xlsm'}{ 'ms-excel:' break } {$_ -in 'doc','docx','docm'}{ 'ms-word:' break } {$_ -in 'ppt','pptx','pptm'}{ 'ms-powerpoint:' break } Default{ '' } } $shortcutName = "[$prefix]$fileName" $shell = New-Object -ComObject WScript.Shell $Shortcut = $shell.CreateShortcut("$home\Desktop\{0}.url" -f $shortcutName) $Shortcut.TargetPath = "{0}{1}" -f $uriSchema, $url $Shortcut.Save() Write-Host "ショートカットを作成しました。>$shortcutName"
補足
OneDriveやSharePointのフォルダは、デスクトップのOneDriveで同期するとエクスプローラで開け、ローカルファイルと同じようにショートカットを作成できます。
SharePointだとサイトごとに同期するのが面倒だったり、
企業によっては同期設定が禁止されているところもあると思います。
この方法であればショートカットを作ることができます。