グーグルドライブのフォルダ直下ファイルの共有URLの一括取得
起業家 佳代起業家 佳代

無料特典を渡すのにグーグルドライブを使っていて

「あの資料の共有リンクってどれだっけ?」
「複数の共有リンクを一気に渡したい」 

って思ったときに時短テクニックを紹介しますね。

本気タマゴさん本気タマゴさん

佳代先生、それって何かに役立つのですか?

起業家 佳代起業家 佳代

はい、特典が増えてくると、1つずつ共有リンクを設定したり取得するのって大変になってくるんです。

今回は一覧でそれが取得できる簡単便利な方法をお伝えしますね。

本気タマゴさん本気タマゴさん

わーい、お願いします★

特典作ったことありますか?

本気起業たまごさんですでに何かしらのサービスを販売している人なら、『特典』を作ったことあるのではないでしょうか?

『特典』とは、無料のPDFや動画、様々な資料のことでLINEやメルマガに登録してもらうためのメリットとして作る場合が多いです。

特典をどう作ればよいか?のお話はまた今度しようと思います。

今回は、その作った特典を共有するときの超時短になる便利なとっておきの裏技です。

あなたは作った特典、どこにアップして保存していますか?

グーグルドライブにアップロードしてその共有リンクを見込み客に渡してませんか?

佳代もそうしています。

共有リンクの取得は意外と面倒くさい

共有リンクが「?」という人は、これを見てください。

右クリして出てくる、リンクを取得っていうボタンのことです。

これを押すと共有リンクが作れます。

 

で、このリンクを見込み客に渡してますよね。

佳代もそうしてます。

でも、、資料が複数あり、「あの資料の共有リンクってどれだっけ?」「複数の共有リンクを一気に渡したい」

というとき、1個ずつ、ちまちま右クリして共有リンクをコピペするのって大変じゃないですか?

ましてファイル名もセットで渡したい場合、

誰かに10個送るとしたら

  • ファイル名を10個コピペ
  • リンクを10個コピペ

ささっと送りたいだけなのにちょっと時間かかっちゃいませんか?

今回、佳代自身がクライアント様向けの会員サイト構築の際にぶち当たった

「資料が多すぎて共有リンクをちまちま1つずつ取得するの嫌だ」問題を解決したく

いろいろ調べた結果、神業を発見してしまったのでシェアします。

ちなみ、、佳代の場合、コンサルのクライアントさんに渡す資料が1つのフォルダに20個を超えており

そのフォルダが複数あったので頭が痛かったのです。。

(これ、1個ずつやるってもはや罰ゲーム?)

Googleドライブのフォルダ直下の全ファイルの共有URLの一括取得のやり方

では、早速、解決に入りますね!

1.共有したいファイルを1つのフォルダにまとめる

配布したいPDF、スプレッドシート、Wordファイルなどを1つのフォルダに入れましょう。

佳代は、こんなフォルダを作ってます。

このフォルダの中に先ほどの20個以上のファイルが入ってます。

2.グーグルスプレッドシートを用意します

グーグルスプレッドシートをフォルダと同じ場所に新規で作成します。

グーグルドライブの左上の新規ボタンを押します。

スプレッドシートをクリックします

名前はわかりやすく、「資料URL一覧」などとしておきましょう。

3.スクリプトエディタをクリックします

「ツール」タブのスクリプトエディタというところをクリックしましょう。

こんなところ、いじったことないよー!

と思ったあなた、わかります(笑)。

佳代もこんなところめったにいじりません。

大丈夫です。もう少しついてきてください。

めちゃくちゃ簡単ですから

4.コードをコピペする

開くとこんな画面が開いたはずです。

書いてあるものは一度、消します。

そして以下の次のコードを貼り付けます。

貼り付けるコードがこちらです。

function createSharedUrl() {
//アクティブなシートを取得する
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();

//変数folderに指定したフォルダーを格納する
//★★★ フォルダーIDを記入 ★★★
var folder = DriveApp.getFolderById(“●●●●●●●●”);

//フォルダー内の全ファイルを変数folderFilesに格納する
//変数folderFiles格納されるデータはイテレーターという形式
//※フォルダー直下のファイルのみ格納する
var folderFiles = folder.getFiles();

//ファイル名を格納するための空の配列を宣言する
var allFiles = [];

//変数folderFilesに格納されている全ファイルのファイル名と
//共有リンクを配列allFilesに二次元配列で格納する
while(folderFiles.hasNext()) {
//配列allFilesに追加する配列(ファイル名と共有リンク)を
//ループ中に一時的に格納するための空の配列tempFileを宣言する
var tempFile = [];

//変数folderFilesからファイルのイテレーターをひとつ取り出し
//変数fileIteratorに格納する
var fileIterator = folderFiles.next();

//ファイル名を取得する
var fileName = fileIterator.getName();

//ファイルIDを取得し、ファイルIDをもとにファイルを
//指定し変数fileに格納する
var fileId = fileIterator.getId();
var file = DriveApp.getFileById(fileId);

//変数fileの共有設定を「リンクを知っている全員が閲覧化」に変更する
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);

//共有リンクを変数shareUrlに格納する
var shareUrl = file.getUrl();

//配列tempFileにファイル名と共有リンクを格納する
//この時点で配列tempFileは以下のようになっている
//tempFile = [ファイル名, 共有リンク]
tempFile.push(fileName);
tempFile.push(shareUrl);

//配列tempFileを配列allFilesに格納する
//配列の中に配列を入れるのでallFilesは
//以下のような二次元配列になる
//allFiles = [[ファイル名1, 共有リンク1],[ファイル名2,共有リンク2],….]
allFiles.push(tempFile);
}

//配列allFiles内の要素数、つまり必要な行数を確認する
var numRow = allFiles.length;

//配列allFiles内の一つ目レコードの要素数、つまり必要な列数を確認する
//今回はレコードの要素は「ファイル名」と「共有リンク」なので2になる
var numCol = allFiles[0].length;

//アクティブなシートの2行目にペースト
sh.getRange(2,1, numRow, numCol).setValues(allFiles);
}
引用元:【コピペでOK!】フォルダー直下の全ファイルの共有リンクを一括作成する方法

function から最後の} までを貼り付けます。

引用元さま、素敵な解をありがとうございました!

貼り付けるとこうなるはずです。

クリックすると拡大

5.フォルダのIDを書き換えます

次に1箇所だけ、書き換えます。

こちらの赤枠のところを自分のフォルダのIDに書き換えます。

簡単!Googleドライブのファイルの共有URLの一括取得~フォルダ直下の共有リンクが一覧に

自分のフォルダIDの確認方法

自分のフォルダIDは、フォルダを表示させて、画面上のURLの以下の部分です。

この黄色の部分がIdです。この場合は、1Jから、JyUまでがIDです。

これをコピーして、以下の部分に貼り付けます。

「 ” 」と「 ” 」 の間に入れます。[”]ダブルクォーテーションは消さないように注意します。

(“●●●●●●●●”);

(“1J_lxpp~~~略~~~JyU”);

5.実行ボタンを押して待つ

ここを押してしばらく待ちます。クルクルと輪が回転しているはずです。

しばらく経つと実行完了と表示されます。

簡単!Googleドライブのファイルの共有URLの一括取得~フォルダ直下の共有リンクが一覧に

もし、途中で警告が出たら!

途中でグーグルドライブからアクセス権限の警告が出ても大丈夫です。

以下のように対処します。

このようなものでたら、許可をクリック

簡単!Googleドライブのファイルの共有URLの一括取得~フォルダ直下の共有リンクが一覧に
クリックすると拡大

次の画面で、詳細をクリックし、下の赤枠をクリック。

 

簡単!Googleドライブのファイルの共有URLの一括取得~フォルダ直下の共有リンクが一覧に

6.完成!スプレッドシートを表示させる

スプレッドシートを見ると、このとおり!

いかがでしたでしょうか。

少し、プログラミングのタグを扱うので一瞬、怖気づいてしまうかもしれませんがこれをやるのとやらないのとでは時間の差は明らかです。

ファイルが増えた場合の対処方法

一度、スプレッドシートに一覧を表示した後、新たに特典を増やし、ファイルが増えたときの対応方法をお伝えします。

ファイルをフォルダに入れても自動ではスプレッドシートは更新されません。

あらたに実行ボタンを押す必要があります。

1.スプレッドシートの中身を消去する

このように一度、データをクリアします。

2.スクリプトを実行する

先ほどと同じ、この実行ボタンをクリックします。

2回目以降は、スクリプトがはりつけられているはずなので、実行ボタンだけでOK。

3.スプレッドシートを確認

スプレッドシートを確認すると一覧が出ているはずです。

以上、便利な使い方を説明しました。

あなたの参考になれば幸いです。