- ベストアンサー
グーグルドライブのフォルダを自動巡回してエクセルに
エクセルにおいて 社員名簿があり ID 氏名で一覧のリストがあります またグーグルドライブ https://drive.google.com/drive/my-drive のフォルダ名称=社員 https://drive.google.com/drive/folders/13dENSrV_XLIBb1nZ5eDhOHQR81fqtCdl において そのサブフォルダとして フォルダ名称=1 https://drive.google.com/drive/folders/1Nijm_Nvs43szpdRv-lIUSBwUTfmxmieW フォルダ名称=2 ・・・ ID=1 氏名=山田 の場合 エクセルシートに フォルダ1のリンク先を 上記のように ひとりずつクリックして https://drive.google.com/drive/folders/1Nijm_Nvs43szpdRv-lIUSBwUTfmxmie https://drive.google.com/drive/folders/*********** のように しらみつぶしに コピペして エクセルの社員名簿に 貼り付けて行けば 可能ではあるのですが 数万単位ありまして なにか そういう作業をするプログラムを 探しています これはVBAではなくて 他のプログラム言語が必要でしょうか 要は まとめますと 自分のグーグルドライブにおいて そのなかの 例えば社員フォルダ を開き 各社員のフォルダを開く URLを、もとのエクセルの社員リスト 例えばA1がID A2が氏名 A3が 上記にあるその個人フォルダのURL このURLのコピペを自動化する プログラムを希望するのですが、 御教示くださいませ win10 office365
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.1の訂正です。 ルートと勘違いしてましたサブフォルダでしたら以下のコードで実行してください。 No.1で紹介したサイト GAS - Google ドライブ のフォルダ内データ一覧取得 / 引き継ぎに備えて https://note.com/tyaperujp01/n/n9e8cd6ae7183#24401fc1-b41a-4e74-afca-af96489f73de の下の方に説明があります。 シート名を「フォルダ一覧」にしてから実行してください。 フォルダ名称=社員 のID(URLのhttps://drive.google.com/drive/folders/より後ろの部分)を B1にコピペしてから以下を実行してください。 function driveFolder(){ // Google ドライブを取得する var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // シートを取得する var sheet = spreadsheet.getSheetByName('フォルダ一覧'); // シートからデータを取得する var folderId = sheet.getRange(1,2).getValue(); // Google ドライブのフォルダを取得する var folder = DriveApp.getFolderById(folderId); // 自分がオーナーのファイルを検索する var query = "'me' in owners and trashed = false"; // 自分がオーナーのファイルを検索する var folfers = folder.searchFolders(query); // ファイルの一覧を出力する while (folfers.hasNext()){ var folfer = folfers.next(); sheet.appendRow([folfer.getDateCreated(),folfer.getLastUpdated(),folfer.getName(),folfer.getUrl(),folfer.getId(),folder.getSharingAccess()]); } } 最初に承認とか出たら以下のサイトを参考に GAS実行時に「このアプリはGoogleで確認されていません」と出る原因と対処法 https://best-cloud.jp/google-apps-script-authentication/
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1719/2589)
あと、パソコン版Googleドライブを入れたら他のフォルダと同じようにアクセスできるのでVBAでの操作も楽になると思いますよ。
- kkkkkm
- ベストアンサー率66% (1719/2589)
結果をエクセルにコピペしなくてもファイルメニューのダウンロードからエクセルファイルとして保存できました。
- kkkkkm
- ベストアンサー率66% (1719/2589)
GoogleスプレッドシートのGAS(apps script)で GAS - Google ドライブ のフォルダ内データ一覧取得 / 引き継ぎに備えて https://note.com/tyaperujp01/n/n9e8cd6ae7183#24401fc1-b41a-4e74-afca-af96489f73de 上記のサイトの以下のコードを実行して結果をエクセルにコピペしたらいかがでしょう。 シート名を「マイドライブフォルダ一覧」にしてから実行してください。 function myDriveFolder(){ // Google ドライブを取得する var drive = DriveApp.getRootFolder(); var query = "'me' in owners and trashed = false"; // 自分がオーナーのフォルダを検索する var folders = drive.searchFolders(query); // スプレッドシートを取得する var sheet = SpreadsheetApp.getActiveSpreadsheet(); var ss = sheet.getSheetByName('マイドライブフォルダ一覧');//アドレス氏名一覧のシート // フォルダの一覧を出力する while (folders.hasNext()){ var folder = folders.next(); ss.appendRow([folder.getDateCreated(),folder.getLastUpdated(),folder.getName(),folder.getUrl(),folder.getId(),folder.getSharingAccess()]); } } 最初に承認とか出たら以下のサイトを参考に GAS実行時に「このアプリはGoogleで確認されていません」と出る原因と対処法 https://best-cloud.jp/google-apps-script-authentication/
お礼