|VBA|Box Driveのフォルダ・ファイルを指定して開くExcelマクロ

Excel
スポンサーリンク

この記事ではExcelマクロを使ってBoxDriveのフォルダやファイルを開く方法を解説します!

最近ではBoxやGoogleドライブなどクラウド共有ファイルサービスが充実していますね。

私の会社でも最近は共有ドライブからBoxへの転換が主流になっています。

保存容量が無制限で改訂履歴も把握しやすく検索性に優れ、外出先でも手元のiPhoneやPCからアクセスできるため企業との相性がいいですね。

そんな中でBOXを使ってファイル管理が始まったために『BOXでVBAが使えないんですけど?』となっていませんか?

今回は『BoxDrive』を便利に活用する方法のひとつとして、ExcelのVBAを使ってBoxのフォルダ、ファイルを開く方法をご紹介します。

BoxDriveとは:
Boxには2種類の使い方があります。1つはWebブラウザ上で操作する『Box』エクスプローラー方式の『BoxDrive』です。BoxはWebブラウザが開きますのでセキュリティの関係上サインインする必要があったリと何かと手間ですが、BoxDriveはエクスプローラー方式で操作できるため、これまでと同様の方法でフォルダを開くなどの操作ができます。

スポンサーリンク

今回やりたいことはこちら!

ExcelのVBAを使ってBoxDriveのリンクを開く方法を解説します。

これまで共有ドライブなどへのリンク設定はフォルダパスをそのまま指定すればよかったのですが、BoxDriveではフォルダパスをそのまま指定しても上手くいきません

その理由としてBoxDriveは『C:\Users\~』から始まるパスになっており『\~』の部分は個人で異なるためです。

同じファイルを開くときに、Aさんは『C:¥Users¥12345\fpath』、Bさんは『C:¥Users¥67891\fpath』となりリンクが上手くいきません。

そこで今回は個人で異なるフォルダパスを取得して誰でも同じファイルにリンクできるようにします。

今回解説すること

  • ExcelのVBA(マクロ)でボタンを設置
    ※ボタン以外にもVBA内に組み込むことも可能です。
  • クリックするとBOX内の指定フォルダ、ファイルが開く

BoxDriveのファイルを指定して開く方法

まずはBoxDrive内に格納されたファイルを指定して開く方法についてやり方を解説します。

分かりやすいようにボタンを押したらExcelファイルが開くように設定していきます。

コードをお求めの方はこちらをクリックして飛ばしてください!

※マクロを登録するExcelは事前にBoxに格納しましょう。
 現在開いているExcelからファイルパスを取得するためです。

  1. ボタンを作成します。
    開発タブの挿入ボタン[フォームコントロール]をクリックしましょう。
    ※開発タブが無い人はこちらを参考にして表示させましょう。

  1. マクロの登録が開きますので新規作成をクリックしましょう。
  1. VBAの画面が開きますのでコードを入力しましょう。

BoxDriveのファイルを開くコード

コピー&ペーストして指定の位置を編集して使いましょう。

'----------------------------------------
BoxDriveのファイルを開くコード

num = Mid(ActiveWorksheets.Path, X,Y) '現在アクティブなシートのファイルパスを変数に代入

FPath ="C:\Users\" & num & "\Box\xxxx\zzzz" 'ファイルのアドレスを変数に代入

Workbooks.open Filename:=FPath 'Boxのファイルパスを代入してExcelを開く

コードの解説

コードの意味と編集する箇所を解説しておきます。
下線の引いてある部分はあなたの使用環境に合わせて編集してください。

  1. num = Mid(ActiveWorksheets.Path, X,Y) ‘現在アクティブなシートのファイルパスを変数に代入
    :現在のシートのファイルパスから個人のパス部分を抜き出します。
     例)現在のパスが『C:\Users\123456789\Box\zzzz』
       X= 10(パスの左から10番目を開始として)
       Y= 9(9文字を抜き出す)
  2. FPath =”C:\Users\” & num & “\Box\zzzz” ‘ファイルのアドレスを変数に代入
    :変数に開きたいファイルのパスと先ほど取得した個人のパスを代入します。
     例)開きたいアドレスが『C:\Users\123456789\Box\フォルダ1\フォルダ1-1\Excelシート.xlsm
       zzzzには\Box\以降のパス(フォルダ1\フォルダ1-1\Excelシート.xlsm)を入れてください。
  3. Workbooks.open Filename:=FPath ‘Boxのファイルパスを代入してExcelを開く
    :先ほど設定したファイルパスを指定して開きます。
     こちらは編集不要です。

BoxDriveのフォルダを開くコード

コピー&ペーストしてこちらも指定の位置を編集して使いましょう。

'----------------------------------------
BoxDriveのフォルダを開くコード

num = Mid(ActiveWorksheets.Path, X,Y) '現在アクティブなシートのファイルパスを変数に代入

FPath ="C:\Users\" & num & "\Box\xxxx\zzzz" 'ファイルのアドレスを変数に代入

CreatObject("shell.application").shellExecute FPth 'Boxのファイルパスを代入してフォルダを開く

※コードの解説はこちらと同じです。

まとめ

以上でBoxDriveに格納されたファイル、またはフォルダを指定して開くことが可能になります。

BoxDriveが従来の共有フォルダと違ってリンクできないのは個人でファイルパスが異なるからでしたね。

ファイルパスが異なるのはBoxDrive自体はCドライブを使って動いているためでした。

このため、個人のファイルパスを取得するVBAコードがあれば、BoxDriveのリンクも開くことができるわけです。

以上の概念を理解してBoxDriveのリンクを取得してフォルダパスを指定してあげる事でBoxDriveでもリンクが開けるようになります。

言われてみれば簡単なことですがあまりネット上に情報が無かったのでまとめてみました。

ご参考になれば幸いです。

コメント

タイトルとURLをコピーしました