質問: GoogleSpreadSheetで現在管理している情報をExcelへそのまま自動で転記することができる仕組みを教えていただきたく。 目的としましては、現在作成しているVBAマクロで利用する情報がSpreadSheetで管理されており、手作業による転記作業を削減したいため。 何か良い手段等ございますでしょうか。
回答: スプレッドシートは既にある更新されないスプレッドシートをエクセル形式に変換したいのでしょうか。それとも常時更新されている状況のスプレッドシートをエクセル形式に変換したいのでしょうか。 **前者の場合**、スプレッドシートを開いて ``` ファイル -> 形式指定してダウンロード -> Microsoft Excel ``` で変換、ダウンロードすることができます。 **後者の場合**、状況によって2通り考えることができるかと思います。 A. スプレッドシート自体を公開しても良い場合 ``` 1.スプレッドシートのファイル -> ウェブに公開 -> エクセルに取り込みたいシートを選択 -> ウェブページとして公開 -> URLをコピー 2.エクセルのWebクエリ -> アドレス欄へコピーしたURLをペースト -> 取り込み (変更タイミングはプロパティで設定) ``` この場合、スプレッドシートが変更されるとエクセルのそれに伴って中身も変更されます。逆はできません。 B. スプレッドシートが公開できない場合 ``` GASを使用して定期的にスプレッドシートをエクセル形式に変換してメールで送る、あるいは自分から定期的にダウンロードさせる。 ``` GASを使用した変換の場合はスクリプトを作成する必要がありますので、ご希望の場合はお時間を頂く必要が御座います。 **追記 :** 下記はローカルPCから直接Google Drive上のスプレッドシートをエクセルに変換してダウンロードするためのものです。 事前にアクセストークンを取得してください。アクセストークンの取得はこちらが分かりやすいかと思います。 取得したアクセストークンを使用して下記のcurlコマンドでスプレッドシートをエクセルに変換してダウンロードすることができます。 ``` curl -LG \ -d "mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ -H "Authorization: Bearer アクセストークン" \ "https://www.googleapis.com/drive/v3/files/ファイルID/export" \ -o "エクセルファイル名" ``` アクセストークをAuthorizationへ入力し、ファイルIDをURLへ入れてください。最後にファイル名を指定して実行してください。ファイルIDは、スプレッドシートを開いたときのURLから下記の部分で取得できます。 ``` https://docs.google.com/spreadsheets/d/この部分がファイルIDです/edit ```