2025年10月20日月曜日

How to get an re-edit URL on Google Forms (Google フォームで再編集用URLを取得する方法)

If you want to edit data submitted in a Google Form that does not allow re-editing, you will need to obtain the re-edit URL via a Google Apps Script program.

*Anyone can edit the data if they know the re-edit URL, so please handle it with care. 


STEP 1. Outputting Google Form data to Sheets using "Link to Sheets"




STEP 2. Decide which column to save the re-edit URL in.


*This must be a column that will not be used and will not be answered, as it will be overwritten.

*Here, I assume that the data is stored in column D.



STEP 3. Set Google Apps Script in the Sheets.


1. Open "Apps Script" in the Extensions menu.



This will take you to the code entry screen shown below.

2. Copy the template of Google Apps Script

Access the link below, select all of the program code displayed, and paste it into the code section.



3. Change two settings.

1. saveTocolumn

Please specify the column number for which you want to put an edit URL. Please note that the selected column value is overwritten.

A = 1, B = 2, .... D = 4, .... 

If you specify "saveTocolumn" value is 4, the re-edit URL will be overwritten to column D.

2. formID

Please paste your Google Form's ID between the single quotes.
You can find the ID in the form's URL (between /d/ and /edit)



ex. formID
https://docs.google.com/forms/d/[formID]/edit#responses

  • const formID = '[formID]';


3. Set the project name and save the Project in Google Apps Script


You should change the name of your project to something easy to understand.
For example, "Get a re-edit URL in Google Forms"
You can change the title of the united project by clicking on it.



After changing the two values, save your Google Apps Script.



STEP 4. Run the Google Apps Script


Before executing, please make sure there is no data in the column specified by saveTocolumn.

And then click the "Run" button.


The first time you do this, some approvals are required.

Click "Review permissions"

Click on the "Advanced" link.

Click on "Go to Untitled project (unsafe)" link.


Then, please allow all the permissions displayed.

If all goes well, information about the row where the re-edit URL was saved will appear, and the process should finish successfully with "Execution completed".


You should then be able to find the re-edit URL on the sheets.


*Of course, to be able to access the re-edit URL and re-edit, you will need to give permission on the Google Form side.
*Anyone can edit the data if they know the re-edit URL, so please handle it with care. 

Troubleshooting


1. If you see the following error on the sheet, it means that "saveTocolumn" is not set correctly in the code.





2. If you see the following error in your sheet, it means that the formID is not set correctly in your code.







20 October 2025 @kimipooh

2025年9月9日火曜日

Google Drive に保存されたデータを Google Takeout でエクスポートした場合、Google ドキュメント等はどうなるのか

Google Drive 上でのみ動作する Googleドキュメント、スプレットシート、スライド等をどのようにバックアップするのか悩んだことはありませんか。

以前、Google Drive アプリを通じて端末からファイルとして Googleドキュメント等のデータをバックアップして他のアカウントにコピーしたのですが、それはバックアップになっておらずに元データを消してしまってデータを消失された痛い経験があります。

上記の場合には、Windows OS のショートカットのようなもので、中には接続先情報しかなく、データは Google アカウントに紐づいたものになっています。

もちろん、 データを他の Googleアカウントに共有とオーナー権限を譲渡することで移行はできます。ただこれはファイル単位の移行であってバックアップではありません。

ファイルのオーナーを他のユーザーにする - パソコン - Google ドライブ ヘルプ

ここでは Google Takeout を使ってエクスポートした場合、どうなるかの検証を備忘録として残します。


STEP 1. Google Drive 上でのみ動作する標準搭載の Googleサービス確認と作成




その他


  1. Google ドキュメント
  2. Google スプレットシート
  3. Google スライド
  4. Google Vids
  5. Google フォーム
  6. Google 図形描写
  7. Google マイマップ
  8. Google サイト
  9. Google Apps Script
の9つあります。

というわけで作成してみました。




STEP 2. Google Takeoutでエクスポート



上記のように、ドライブだけチェックをいれます。
また「複数の形式」をクリックすると、下記のようにどのフォーマットに変更できるか選択肢がでてきます。他の選択はどれも PDF のみですね。





STEP 3. エクスポートデータの確認








  1. Google ドキュメント → Microsoft Word(.docx)
  2. Google スプレットシート → Microsoft Excel (.xlsx)
  3. Google スライド → Microsoft PowerPoint(.pptx)
  4. Google Vids → メタ情報(JSON)+MPEG4(.mp4)
  5. Google フォーム → ZIP圧縮(質問(CSV) + (フォーム表示(HTML))
  6. Google 図形描写 → JPEG画像(.jpg)
  7. Google マイマップ → 地理情報データ(.kmz)
  8. Google サイト → HTMLファイル群(フォルダ構成)
  9. Google Apps Script → コード+メタ情報(JSON)
となっていました。

  • ゴミ箱
    • ゴミ箱に入っているファイルもエクスポートされるので、無駄な容量のエクスポートをしたくないなら、ゴミ箱を空にしておかないと駄目ですね。
  • My Laptop
    • 「パソコン」に保存されたデータ。Google Driveソフトをパソコンにインストールした場合、データのバックアップ設定が可能。そのデータ( https://drive.google.com/drive/computers ) がエクスポートされている
  • 未整理
    • https://drive.google.com/drive/search?q=is:unorganized%20owner:me
      Google Drive で 「is:unorganized」検索した場合。
      こちらは、元フォルダが失われて、「非表示」になってしまっているファイルだそうです。共有したフォルダ(オーナーアカウントは別)で、そこにデータを入れていた場合、そのオーナー側のアカウントがフォルダを消したり、アカウントを消した場合になるのかなぁと漠然と思ったりします。
      情報源:Find lost files in Google Drive(Google Drive Help)
とまぁこのようにエクスポートされるのですね!

2025年9月9日 @kimipooh

2025年8月28日木曜日

【Mac編】Google Takeout でエクスポートした Google フォトのデータの日時情報を修正する方法

Windows OS 用はいくつかあるのですが、macOS 用では使い勝手のよいものがさがせなかったので作ってしまいました。

関連情報



はじめに


Googleフォトからダウンロードすると、ファイルの作成日付がそのダウンロードした日になってしまいます。EXIF情報が存在する場合には、その情報から修正することは可能です。カメラの位置情報を明示的にオフにしていないスマートフォンであれば、基本的には入っているはずです。

上記については、下記でまとめています。フォルダも指定できるので便利です。

しかしながら、EXIF情報のない写真や、それ以外のデータもあるはずです。それらは exiftoolでデータをみると、下記の3つぐらいしかなくて、それらは Googleフォトからダウンロードした日になってしまいます。写真は「いつ」とったかの情報が非常に大事です。
  • FileModifyDate
  • FileAccessDate
  • FileInodeChangeDate
Googleフォト上では日時順に並んでいるわけで、Google側は日時情報を保持しているはずなのです。こちらも含めて取得するためには、Google Takeout という Googleアカウントに入ったデータをバックアップ目的でエクスポートするという機能をつかうことで取得できます。

ただ気をつけないといけないことは、これでエクスポートした Googleフォトの画像データもまた、ファイルの日時情報はエクスポートした日になってしまうことです(画像データ+メタ情報(JSON)の2ファイルを取得)。ただし、各ファイルに 日時など Googleがどのように管理しているかのメタ情報ファイル(JSON)も合わせてエクスポートします。これを参考に exiftool で日時を直すことにします。

JSONファイルの一部をみると、photoTakenTimeが画像のオリジナル日時になります(赤文字)。こちらのタイムゾーンは UTC 表記のため、これを日本なら JST時間(+9時間)に変更する必要があります。

  "title": "man-html2.gif",
  "description": "",
  "imageViews": "1",
  "creationTime": {
    "timestamp": "*****",
    "formatted": "2025/08/28 1:51:56 UTC"
  },
  "photoTakenTime": {
    "timestamp": "*****",
    "formatted": "1997/05/15 7:31:18 UTC"
  },

いまどきなら Gemini(生成AI)を使えば、苦労せずに作れるのでは!?とおもって作ってみました。ただ結構何度も修正が必要だったので、やはり生成されたシェルスクリプトを実行して、意図して動作しているのか、どこが間違っているのか理解してプロンプトにて修正依頼をださないといけないなぁと思ったのでした。ただ Usage など -h 部分の実装など自動でやってくれるのは便利ですねぇ。

googlephoto_date_update.sh をインストールする


*macOS Sequoia 15.6.1 で検証しました。
*すべてコマンドを使うため、Macintosh HD > ユーティリティ > ターミナルを起動して、それ上で操作してください。
* 以下、「青文字」が実行するコマンドです。コマンドは入力したあと Enter キーを押すことで実行できます。

より googlephoto_date_update.sh をダウンロードする。

ダウンロードフォルダにダウンロードしたとして

ターミナルアプリより、

cd $HOME/Downloads
chmod +x googlephoto_timestamp_update.sh
を実行して、ファイルに実行権限をつけてください。

そして、下記を実行してコマンドのヘルプが表示されることを確認してみてください。

./googlephoto_timestamp_update.sh -h

どこででも実行できるようにするためには、
下記を参考に PATHを設けておくと便利です。

Google Photos のデータを Google Takeout でエクスポートしてみよう



1. https://takeout.google.com にアクセス
2. 「選択をすべて解除」をクリック
3. 「Google フォト」のみ選択

*特定アルバムのみエクスポートする場合には、「すべてのフォトアルバムが含まれます」をクリックして、必要なアルバムのみチェックをいれてください。
4. 次のステップへ
5. エクスポート先を選択
Googleドライブの容量が十分にある(Googleフォトの全容容量をさらに保存しても余裕)であれば、「Googleドライブへ追加」がもっとも速いです。ダウンロードリンクの場合には、結構時間がかかります。
ファイルサイズは、エクスポートする容量がどの程度かで考えてください。

エクスポートするデータが複数に分割されている場合には、それらの圧縮ファイルを展開して1つのフォルダに統合する必要があります。Windows OS では統合を選択できますが、macOS の場合には、Optionキーを押しながら、特定フォルダへドラッグ&ドロップさせることで統合ボタンがでてきます。

Macで「同じ名前のフォルダ」を結合する方法 | エンジニアの備忘録

特定アルバムをエクスポートした場合


ダウンロードした zipファイルを展開すると、下記のようなフォルダとファイル構造なります。

Takeout
 Google フォト
  アルバム名
   写真1.jpg
   写真1.json
   メタデータ.json

この場合、ツールは
   写真1.json
からタイムスタンプ(日時)情報を取得して
   写真1.jpg 
の画像データのタイムスタンプを修正します。

全データをエクスポートした場合


Takeout
 Google フォト
  Photos from 2010
  Photos from 2011
  Photos from 2012
  Photos from 2013
      .....
  アルバムA
    写真1.jpg
    写真1.json
    メタデータ.json
  アルバムB
   写真2.jpg
   写真2.json
   画像3.png
   画像3.json
   メタデータ.json

のような構成になります。


googlephoto_date_update.sh を使ってみよう!


ダウンロードフォルダに、Takeout というフォルダがあり、その中に Google Takeout でエクスポートした Googleフォトデータがあるとします。特定アルバムの場合には、下記のようになっていることでしょう。

Takeout
 Google フォト
  アルバム名
   写真1.jpg
   写真1.json
   写真2.jpg
   写真2.json
   ....
   メタデータ.json

googlephoto_date_update.sh がダウンロードフォルダにあるとして

./googlephoto_date_update.sh Takeout

を実行してください。
それだけです。

もし日本ではなくシンガポールに住んでいて、Googleフォトもそのタイムゾーンをベースにアップロードしているならば、シンガポールは UTCの +8時間ですから、下記のように実行してください。

./googlephoto_date_update.sh --timezone +08:00 Takeout


2025年8月28日 @kimipooh

2025年4月4日金曜日

Gmailサービスのない既存メールアドレスでの無料版 Googleアカウントの作成方法

無料版 Gmailアドレス( @gmail.com )ではなく、すでにお持ちのメールアドレスで Google アカウントを作成したいときもあります。たとえば、 Google グループ管理、Googleドライブでのデータ共有など、Googleアカウントが必要なケースもあるためです。

なお、アカウント作成の全般的な作り方については、下記を参考にしてみてください。
ここでは、「Gmailサービスのない既存メールアドレスでの無料版 Googleアカウントの作成方法」に特化して説明します。また時どき UI が変更されたりします。下記については 2025年4月4日時点の情報です。

Gmailサービスのない既存メールアドレスでの無料版 Googleアカウントの作成方法


Google アカウントの作成( Google アカウントヘルプ) 


上記リンク先のスクリーンショット

より、「自分用」を選択

STEP 1. 姓名を入力



STEP 2. 生年月日、性別を入力



STEP 3. アカウント種別の選択


既存のメールアドレスを使用する」をクリックしてください。


STEP 4. Googleアカウントを作成したいメールアドレスを入力



STEP 5. メールアドレスの所有確認



STEP 6. パスワードの作成



*パスワード作成の次に、無料版 Gmail ( @gmail.com )では、再設定用のメールアドレスの追加をおすすめされますが、「Gmailサービスのない既存メールアドレス」の場合には、そのメールアドレス自体が、再設定用メールアドレスとして自動登録されます。

STEP 7. セキュリティチェック(SMSが使える電話が必要)


入力した電話番号宛にショートメッセージ(SMS)を送ります。その番号を入力する必要があります。


STEP 8. セキュリティの強化確認


予備の電話番号の登録を聞いてきますので、携帯番号を入れておくとよいかと思います。




STEP 9. 利用規約への同意




中略

下記のように「同意する」ボタンをクリック


以上を経て、下記のような Google アカウント管理画面がでてきたら、作成完了です。



推奨. 2段階認証プロセスを有効にする


パスワードが何かの拍子で漏洩(パスワードの使い回しをしているなど)してしまった場合を想定し、アカウントの強化のために、2段階認証を有効にしておくことがお勧めです。



2 段階認証プロセスを有効にする - Android - Google アカウント ヘルプ

2025年4月4日 @kimipooh

2025年2月16日日曜日

Google One プランのダウングレード方法

新しい Pixel を購入したときなど、キャンペーンなどで本来高額な Google One プランが期間限定で無料利用しているケースもあるかと思います。もし無料版 Googleアカウントの容量 15GBを超える容量をつかっている場合、期間終了前にこのプランをキャンセルしてしまうと、期間終了後に容量がオーバーしてしまって、メールを受け取れなくなるなど問題が発生します。

そこで、プランのダウングレード(より安いプランへの変更)についてまとめておきます。

筆者は、AIプレミアム(2GB) から、ベーシックプラン(100GB)への変更をし、それが2月15日の切替時点(筆者の場合)でうまく自動継続されました。


Google Play <googleplay-noreply [@] google.com> より下記のメールが届きました。



関連情報


参考:Google One プランの更新とアップグレードに関する問題の修正 - Google One ヘルプ


ダウングレードの流れ


操作手順:https://support.google.com/googleone/answer/9003633 にある「ストレージプランを変更」ボタンをクリックし、「ダウングレードのオプション」にある「その他のプランをみる」より 100GBを選択

STEP 1.  ダウングレード設定をする


前提:Google Paymentsのサブスクリプションとサービス(定期購入) 上で Google One AI プレミアムを契約している


下記にアクセスして「その他のプランをみる」より、ダウングレードしたいプランを選択して、「ダウングレード」します

筆者は「ベーシック(100GB)年額」(¥2,500)を選択しました(年額のほうのスクリーンショットはとり忘れ)

ダウングレードを選ぶと、下記のように注意事項がでてきます。
https://one.google.com/storage にアクセスして、本当に100GBで容量がたりそうか確認し、問題なければ「はい、続行します」より手続きをします。


STEP 2. Google One プランの状況を確認する


下図のGoogle Payments 上の定期購入をみて、下記の2点を確認します。

  1. 100GB (Google One)が有効であること。
  2. Google One AI Premium (2TB) (Google One) がキャンセルされていること。





Androidスマートフォン(筆者は Pixel)において、Google Play の 定期購入を確認すると、下図のように次回は100GBプランの支払いになっています。


上記をタップすると、「定期購入の管理」が表示され、次回更新が2025年2月15日となっており、「プランの変更」と赤文字で書かれた上で、100GB (Google One)の1年間契約である ¥2,500 のみ請求されていることを確認できました。



STEP 3. 切替日(2月15日)


Google Play <googleplay-noreply [@] google.com> より下記のメールが届きました。



https://one.google.com/plans のプランをみても、下記のようにダウングレードされたものになっています。https://one.google.com/storage にアクセスしても容量は100GBになっています。

2025年2月16日 @kimipooh