見出し画像

【Googleスプレッドシート】セル内グラフも作れちゃう「ウェブに公開」機能で 公開名人に 2 【Googleドライブ】

Googleスプレッドシートで作成したデータ、表 を皆に見てもらいたい! でも、Googleのアカウント名やメールアドレスが知られちゃうのは困る・・・。

こんな悩みを解決する「ウェブに公開」という機能について紹介するシリーズ2回目です。

先週は「ウェブに公開」機能の紹介、第1弾ということで共有と公開の違いや、公開の方法、GoogleドキュメントやGoogleスライドでも使えること、そしてGoogleスプレッドシートの公開は色々なパラメーターがで表示を制御できることを書きました。

今回は続きなんで先に 👆 コチラから読むことをお勧めします。



Googleスプレッドシートで「ウェブに公開」を使うメリット

今回はまず、前回伝えきれていない「ウェブに公開」機能を使うメリットから見ていきましょう。

「リンク共有」と比較しながら メリット、そしてデメリットについても掘り下げていきます。

「ウェブに公開」のやり方については、前回の noteを参照ください。



「ウェブに公開」のメリット1. オーナーの身バレを防げる

まず、コレです。

前回お伝えした通り「リンク共有」で他の人に見てもらおうとした場合、同じタイミングでオーナーが開くと右上にアイコンが表示されてオーナーが降臨していることがバレてしまいます。

リンク共有の場合

しかし「ウェブに公開」のURLから開いた画面はスプレッドシートとしての機能は失われているので、匿名アカウントを含め今開いている人が表示されることはありません

ウェブに公開の場合

リンク共有のURL、ファイルIDはオーナーが開いている編集画面のURLと基本的に同じものが使われますが、ウェブに公開のURL(ID)は独自のものが別途発行されます。

■リンク共有のURL
https://docs.google.com/spreadsheets/d/【スプレッドシートID】/edit?usp=sharing

元のURLにusp=sharingが付くだけ

■ウェブに公開のURL
https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用のID】/pubhtml?

元のIDとは別の公開用IDを使ったURLが発行される

公開ページには、この元のスプレッドシートのIDやオーナーの情報に繋がるようなソースは含まれていません。(本職の人だと発掘できる裏技を持ってるのかもしれませんが)

基本的にはウェブに公開のページからは、元のスプレッドシートやオーナーに繋がる情報を知られることは無いと考えてよいでしょう。



「ウェブに公開」のメリット2. 開いた人のGoogleドライブに残らない

リンク共有したスプレッドシートやドライブを開く時、相手がGoogleアカウントでログインした状態の場合、開いたスプレッドシートが その人のGoogleドライブの「共有アイテム」に表示されるようになってしまいます。(「最近使用したアイテム」や スプレッドシートの ホーム画面にも表示されます)

見ただけでここに残るのは嫌だって人も多いですし、ここからファイルのオーナーの「アカウント名、アイコン画像、メールアドレス」が確認できてしまうので、オーナー側としても困る仕様だったりします。

さらにはファイルの更新履歴まで閲覧者は見えちゃいます・・・。

そこまで共有しなくても

見えすぎちゃって困るの~状態ですね。

これも「ウェブに公開」を使うことで防げます!

先ほど書いた通り「ウェブに公開」のURLは元のファイルのURLとはまったく別モノなので、開いた人(閲覧者)のGoogleドライブにファイルは表示されず 痕跡が一切残りません。当然 オーナーの情報も見えません。

Googleスプレッドシートを共有した時、相手はURLからGooleスプレッドシートを開くわけですが、「公開」のURLから開いた場合はGoogleスプレッドシートではない、単なるWebページを開いた扱いなんでしょうね。

大きな違いです。



「ウェブに公開」のメリット3. 閲覧用リンクと編集用リンクを使い分けできる

ウェブに公開は 元のURLとはまったく別のURLが発行される、さらにウェブ公開のページからは元のURLを知ることは出来ない

これを利用すると

Googleアカウントを持っていない共同運営メンバーには リンク共有で編集権限を与えて URLを通知

それ以外の閲覧者には 「ウェブに公開」から 公開用URLを取得して通知

こんな運営が可能となります。

WEB上で多くの人に見てもらいたいスプレッドシートのデータを 何人かの編集メンバーに手伝ってもらいたいけど、編集メンバー側は手伝うのはいいけどオーナー含め他の編集者や閲覧者側にGoogleアカウントは知られたくない

こういったケースもあるかと思いますが、これもウェブで公開を使うことで解決できますね。



「ウェブに公開」のメリット4. 一部のシートだけを公開したり、見せたくない非表示のセルや数式を秘匿できる

前回書きましたが、Googleスプレッドシートの「ウェブに公開」は、シート単位やグラフを指定して公開が可能です。

この時、公開していないシートのシートIDをなんらかの方法で相手が知ってしまった場合でも非公開のシートは開くことは出来ません

もちろん「共有」でもシートを非表示にしてある程度は隠すことが出来ますが、そもそもコピーやダウンロード制限を設定していない場合は、ファイルのコピーやダウンロード、IMPORTRANGE関数の利用で非表示部分を見ることが出来ますし、完全ガードしたつもりでも 「正規表現を使用した検索」を使う方法で突破される可能性があります。

続きの部分はデベロッパーツールから確認可能

見せたくないシートがある場合は、ウェブに公開を使うすべきですね。

ただし、Aさんにはシート1、Bさんにはシート2、Cさんにはシート3を見せる・・・こんな使い方は出来ません。

前回も書きましたが、見た目上シートタブを非表示に出来ますが、URLのパラメーターをいじれば 公開しているシートは誰でも見れてしまうので注意です。


また、行や列の非表示を使って見せたくないセルを隠す場合も同様です。

上と同じように共有した場合は 閲覧者でも非表示部分を覗き見できちゃいますが、ウェブに公開であれば相手に見られることはありません。


さらにデータを相手に見てもらいたいけど、セルに入ってる数式は見せたくないというケースもあるでしょう。

この場合もリンク共有だと数式が見えてしまいますが、ウェブに公開であれば数式の結果を値としてのみ表示しているので、中の数式を完全に隠すことが出来ます。



「ウェブに公開」のメリット5. ウェブページ以外の形式も活用できる & データをインポートできる

Googleスプレッドシートの公開はウェブページだけではなく

カンマ区切り形式(.csv)
タブ区切りの値(.tsv)
PDFドキュメント(.pdf)
Microsoft Excel(.xlsx)
OpenDocument スプレッドシート(.ods)

と様々な形式で可能です。

これらはウェブページとして公開していれば、URLの末尾を

PDF形式の場合 pub?output=pdf 
CSV形式の場合 pub?outpu=csv

とすれば利用できるので、わざわざ再度他の形式で公開をする必要はありません。

■1シートをウェブに公開した時のURL
https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用のID】/pubhtml?gid=【シートID】&single=true



■1シートをCSV形式で公開するURL
https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用のID】/pub?gid=【シートID】&outpu=csv

なお、スプレッドシート全体を選択して csv、tsvにした場合は先頭(一番左)のシートのみが csvになります。

また 特定のシートだけを Excelやodsには出来ません


ウェブ公開しているということは、IMPORT系関数でデータを取得できるということなので、このウェブ公開用URLを利用して

CSV形式のデータを利用して別のスプレッドシートで IMPORTDATA関数でデータを取得して利用することが出来ます。

ウェブページ形式のURLからIMPORTHTML関数で表のデータを取得することも出来ますが、

行番号が入ってしまうのとシート指定が出来ず、公開している複数シート内の1番目のシートから数えて何番目のテーブルか?という指定をする必要があります。CSV経由の方がおススメ。


ウェブに公開のデータはExcelで利用することも可能で、Webからのデータの取得で Excelのテーブルにリンクさせることも可能。

検証できないですが、スピル対応で WEBSERVICE関数が使えるExcelなら CSV公開データを参照できると思います。(※Excel2019だと1つのセルにカンマ区切りで出力されちゃう)



「ウェブに公開」のメリット6. もっとも簡単なWebページ作成ツールとして利用できる

前回のnoteでも書きましたが、公開のURLはパラメーターを付加することでグリッド線を非表示にしたり、余計な表示を消したりといったことが可能です。

さらにGoogleスプレッドシートはセル内に画像を挿入したり、ハイパーリンクを設定したり、セル結合などを駆使することで自由なレイアウトを組むことも可能です。

これを公開すれば 超簡単にWebページを作成することが出来るわけです。

このように ウェブに公開を使うだけで、 画像や ハイパーリンクを入れた Webページをさくっと作れちゃうのは便利ですね。

なおスプレッドシート内の別のシートや別のセルにジャンプするリンクは、「ウェブに公開」では機能しないので注意です。ここは残念。



「ウェブに公開」のメリット7. その他のメリット

上に書いた通り「ウェブに公開」は「共有」に比べオーナーの個人情報を晒すことなく不特定多数に見せたいデータだけを見せることが可能で、閲覧者(開いた側)も自分のGoogleドライブに痕跡が残らないという大きいメリットがあります。

それ以外にも

7-1.スプレッドシートのアプリを入れてない人でもスマホで開きやすい
スプレッドシートのアプリで開くことなく、またインストールしろと督促されることもないんで、

誰もがスマホで開きやすいというメリットや


7-2.大人数が同時アクセスしても安定して開ける(らしい)

https://support.google.com/a/users/answer/13309904?

これは検証できないので未確認ですが、大人数のアクセスがある場合は共有ではなく公開の方が良かったり


7-3. Webページに必要な部分だけを埋め込みできる

指定した以外のセル範囲を秘匿できるわけではありませんが、指定したセルだけをWebページに埋め込み表示できるといった点もメリットと言えるでしょう。

埋め込みの方法については後ほど触れます。




Googleスプレッドシートで「ウェブに公開」を使うデメリット(注意点)

メリットに続いてデメリットも確認していきましょう。



「ウェブに公開」のデメリット1. 公開しているかどうか?がわかりにくい

便利な「ウェブに公開」機能ですが、一番の注意点がコレです。

「公開しているかどうか?」が一見してわかりません。

共有であれば Googleドライブ上で 人のアイコンが付いていることで、(アカウント指定かリンク共有かは判別できませんが)共有中であることが一目でわかりますし、

ファイルを開けば右上で リンク共有(地球マーク)なのか、アカウント指定の共有(人のマーク)なのか、誰とも共有していない(鍵のマーク)なのかで、すぐにわかります。

さらにGoogleドライブの検索で 「ユーザー」の箇所を「リンクを知っている全員」とすれば、リンク共有中のファイルだけを表示することも可能です。


しかし「ウェブに公開」はドライブ上や普通にスプレッドシートを開いていても、どこにも「公開中である」ことを示す表示がありません

一応、公開したこと、公開を停止したことGoogleドライブ上の履歴には残るんですが、

今現在「公開しているかどうか?」は、メニューの

ファイル > 共有 > ウェブに公開 を開いて

ここを確認するしかありません。

なにか GAS等で いい方法が発見できたらお知らせしますが、とりあえず「公開」しているスプレッドシートやスライド、ドキュメントは自分で管理しないとリスクがある(後で調べるのが大変)ってことです。

これが大きなデメリットというか注意点。



「ウェブに公開」のデメリット2. 編集者でも公開できちゃう(防止設定あり)

さらに「公開しているかどうか?」がわかりづらい上に、オーナーだけでなく「編集者」でも「ウェブに公開」が出来ちゃうのが「ウェブに公開」機能の怖い点(デメリット)です。

一応、これは防止策があって 共有のダイアログ右上の歯車アイコンから 共有の設定を開き 「編集者は権限を変更して共有できます」のチェックを外すことで

オーナー以外の編集メンバーは「公開」の設定を変更できないように制限できます。

大事なファイルは設定しておきましょう。



「ウェブに公開」のデメリット3. 印刷は防止できない(コピーは制御できる)

閲覧で共有する際は、先ほどの共有設定の

「閲覧者と閲覧者(コメント可)に、ダウンロード、印刷、コピーの項目を表示する」のチェックを外すことで、値のコピーやファイルの複製、ダウンロード、印刷を制御できます。

この制限はChromeのメニューの方から印刷しようとしても、データは表示されません。しっかり対策しています。

ちなみに最近、オーナーが閲覧者に対して制限をかけていると共有メンバー(閲覧者)側では

このように「セキュリティの制限」というポップアップが表示され、

ここで「すべての制限を表示」をクリックすると

制限事項が確認できるようになりました。

この閲覧者の権限を制限する設定は「ウェブに公開」にも有効です。

これを設定した場合、通常はマウスでは選択して判定できる値が選択できず、データのコピーが出来なくなります。

しかし、さすがに公開画面ではChromeの印刷は制御できません

まぁ今だったらスクショから簡単に文字起こし出来ちゃうんで、あまり意味はないかもしれませんが。



「ウェブに公開」のデメリット4. スプレッドシートの魅力が損なわれる(フィルタビュー、リアルタイム更新)

Googleスプレッドシートは 閲覧権限しかないメンバーでも、自由に自分の画面でだけ 並び替えしたり絞り込みが出来るフィルタビュー機能が使えるのが魅力です。


当然ですが「ウェブに公開」では、フィルタビューは使えません。ユーザー側は見るだけとなります。(Chromeの機能で検索は出来ますが)

またGoogleスプレッドシートの魅力の一つである リアルタイム同期に関しても

このようにウェブに公開だと、すぐには反映されません。

基本的には ウェブに公開の場合は最大5分程度の間隔でデータが更新され、さらにWebページをリロード(更新)で反映させる必要があります。

頻繁にデータが更新され、さらに即時性が求められる場合は「公開」は向いていないってことです。



「ウェブに公開」のデメリット5. 画像やPDFなどアップロードファイルでは使えない

「ウェブに公開」機能は、

  • Googleスプレッドシート

  • Googleドキュメント

  • Googleスライド

  • Googleの図形描画

などの Googleのオフィスツール群で使える機能です。

GoogleフォームGoogleサイトにも「公開」はありますが、少しニュアンスが違うのでこちらに含めていません

残念ながらGoogleドライブ内の画像・動画ファイルやPDF等では「ウェブに公開」機能は使えません

画像やPDF、むしろ Googleドライブの フォルダ単位でオーナー情報を秘匿する「公開」が出来たら、最強のファイル共有ツールになりそうなんですが。

まぁそこまで自由にしちゃうと悪用する人も出てきそうなんで難しいのかもしれませんね。



「ウェブに公開」のデメリット6. 公開範囲を制御できない(GoogleWorkspaceの場合は出来る)

当然ですが「ウェブに公開」機能は、誰でも見れる状態にする機能です。公開範囲(見れる人)を制限して公開といったことは出来ません。

※Googleサイトは 公開の範囲を制限できます

公開したドキュメントはウェブ検索ではヒットしない仕様とのこと(公式ソースは未確認)ですが、個人情報や機密情報を扱うスプレッドシートは公開は使わない方が良さそうです。

ただし 実は企業や学校が利用する GoogleWorkspaceアカウントであれば、組織内でだけ公開といった設定が出来ます。

同じ組織内でオーナーを秘匿したいといったことはあまり無いかと思いますが、下で紹介している ポータルサイトへの埋め込みの場合は 組織内に制限して Web公開すると良いでしょう。

以上がウェブに公開のデメリットです。

一番のデメリットはやはり 公開しているかどうか?がわからないって点ですね。

公開しているのをすっかり忘れてシートを追加して大事な情報を記載しちゃう・・・実は丸見えでした!なんてことが無いように注意しましょう。



Googleスプレッドシート「ウェブに公開」で埋め込みを使う

メリット5で紹介した、Googleスプレッドシートのこのシートのこの部分だけをWebページに埋め込みたい!って時の手順を紹介しておきます。

HTMLの記述をパーツとして扱えるポータルサイトでこれを使うことで、スプレッドシートに(5分程度の更新間隔で)連動させて 変化させることが出来ます。

ユーザーはスプレッドシートを更新するだけで、Webの表示内容を更新することが出来るんで社内ポータルの運用が簡単で便利になります。

やり方を見ていきましょう!


スプレッドシートの指定した範囲だけを埋め込む手順

この表の赤枠部分 A1:C7だけを Webページに埋め込んでみましょう。

まずは メニューから ファイル > 共有 > ウェブに公開 で、公開の設定ダイアログを開き

「リンク」ではなく「埋め込む」の方に切り替えてから、埋め込みたいデータがあるシートを指定して「公開」ボタンを押す。

「公開してもよろしいですか?」とアラートが出るので OKを選択。

こんな感じの ifarme のHTMLソースが表示されるんでコピー。

試しにこれをGoogleサイトで 埋め込むから、 埋め込みコードを選択して貼り付けてみましょう。

次へを押すと確認画面に切り替わるので最後に「挿入」を押します。

うーん、シンプルに指定した範囲だけ欲しいのにファイル名、シート名、タブが表示されちゃってますね。サイズも変だし。。

これを修正しましょう。

<iframe src="https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用ID】/pubhtml?gid=【シートID】&amp;single=true&amp;widget=true&amp;headers=false"></iframe>

👆取得した HTMLソースはこんな感じなんで、上下を非表示にしてシンプルにする為に

<iframe src="https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用ID】/pubhtml?gid=【シートID】&amp;chrome=false"></iframe>

single=true、widget=true、headers=false を削除して chrome=false とします。

&amp; はHTML内で特別な意味を持つ &をそのまま文字として使う為のエスケープの記述方法です。

とりあえず上下の余計な表示はなくなりました。

さらに指定セル範囲 A1:C7だけにする為にrangeパラメーターを追記します。

<iframe src="https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用ID】/pubhtml?gid=【シートID】&amp;range=A1:C7&amp;chrome=false"></iframe>

シートIDの後ろに &amp;range=A1:C7 を入れました。

指定した範囲だけになりましたが、周りの縁とスクロールバーがイマイチですね。

最後に サイズの100%指定とスクロールバーなし、およびフレーム線なしを追記しましょう。 

<iframe src="https://docs.google.com/spreadsheets/d/e/【2PACX-からはじまる公開用ID】/pubhtml?gid=【シートID】&amp;range=A1:C7&amp;chrome=false" width="100%" height="100%" scrolling="no" frameborder="0"></iframe>

余計なものがないすっきりした表だけがスプレッドシートからWebページに挿入できました。

CSSで制御する書きかたもありますが、一番シンプルな基本の書き方で スプレッドシートのウェブに公開機能を使った「埋め込み」をカスタマイズする方法を紹介しました~。



グラフを公開と応用技

最後に スプレッドシートのグラフの公開機能と、それを使った応用技について触れて終わりにしましょう。

スプレッドシート内にグラフがある場合、指定したグラフ(だけ)を公開することが可能です。

グラフの公開に関しては

注: 閲覧者が公開されているグラフの基礎データにアクセスできる場合もあります。

このような注釈がありますが、これはグラフの公開URLを少しいじると スプレッドシートの公開用URLに変えてアクセスすることが出来る為です。

公開している場合、URLの末尾の pubchart?・・・・ 部分を pubhtml に変えるだけ

ただ、グラフ以外を公開していなければ基本的にシートの内容を見られるこことはありません。

公開していない場合、スプレッドシート名だけは見えちゃう

他のシートも公開している場合は注意が必要です。



グラフの公開 インタラクティブと画像の違い

グラフの場合は 公開のタイプは インタラクティブ画像の 2種類があります。

この2つのURLは末尾の部分だけの違いです。

■インタラクティブ
https://docs.google.com/spreadsheets/d/e/【2PACX-から始まる公開用ID】/pubchart?oid=【オブジェクトID】&format=interactive

■画像
https://docs.google.com/spreadsheets/d/e/【2PACX-から始まる公開用ID】/pubchart?oid=【オブジェクトID】&format=image

基本的にはスプレッドシートで表示されているグラフと同じで マウスポインタをあてると 数値が出るインタラクティブの方を使うことをお勧めします。

【サンプル】
インタラクティブ https://docs.google.com/spreadsheets/d/e/2PACX-1vQsZIiYX-v5Y2zZqVzgqRoL8U5f2BApd3OkGOqQxY-glaOuwNt98fZS2tX45OJP0LBgHrdXgyWdJVcw/pubchart?oid=1592803508&format=interactive

イメージ(画像)https://docs.google.com/spreadsheets/d/e/2PACX-1vQsZIiYX-v5Y2zZqVzgqRoL8U5f2BApd3OkGOqQxY-glaOuwNt98fZS2tX45OJP0LBgHrdXgyWdJVcw/pubchart?oid=1592803508&format=image


では、機能的に劣る グラフを画像で公開の方は出番がないのか?というとそんなことはありません。



他のスプレッドシートのグラフをセル内グラフにする

グラフを画像形式で公開 した場合、グラフは「一般公開されている画像」
になるので IMAGE関数で取得ができます

SPARKLINE関数とは違う方法で、より自由度の高いグラフをセル内に表示させることが可能となります。

また、通常は 元データがあるスプレッドシートで作成したグラフを 別のスプレッドシートに貼り付けた場合、別スプレッドシートのグラフは固定化されて 元データの変更と連動しないのですが、

この グラフの画像公開 + IMAGE関数 を使えば

複数のスプレッドシートから データは参照せずに結果のグラフだけを 1つのスプレッドシートで集約して 閲覧するダッシュボードのような使い方もできるということです。

適当に作ったんでセンスが感じられないダッシュボードに・・・

ただ、当然ですが 公開グラフを参照しているので 更新はリアルタイムではありませんし、スプレッドシートを開きなおさないとグラフは更新されません

また、負荷を軽減する為にキャッシュしているのか?元データの入ったスプレッドシート側で数字を更新しても IMAGE関数で取得したグラフ画像がなかなか更新されないこともあります。

開いたままのスプレッドシートで、なるべく早くグラフに更新を反映したい!

こんな希望がある場合は、 NOW関数を使って適当なパラメーターをURLに付加するという方法があります。

=image("https://docs.google.com/spreadsheets/d/e/【2PACX-から始まる公開ID】/pubchart?oid=【オブジェクトID】&format=image&ver="&NOW())

末尾の&ver="&NOW() はURLにはなんの影響も与えないダミーのパラメーターですが、スプレッドシートの設定を 毎分再計算とすれば

毎分、IMAGE関数の画像は再読み込みされるので 元のデータに変化があったら 最大5分程度の時間差で

このようにIMAGE関数で取得したグラフが自動更新されます。

NOW関数で再計算する式が多いと負荷も大きいので、毎分ではなく毎時にするとか、TODAY関数で1日1回更新にするなど調整ください。

ただグラフ化するような数値は、コンフィデンシャルってケースが多いんで、それを公開するという点がネックなんですよね。。

あと、テーブルも画像として公開できたら セル内に表入れられて面白そうなんですが、それは出来ませんでした。



公開したコンテンツを管理して 公開名人に!

2週にわたって「ウェブに公開」機能の魅力をお伝えしました。

メリット、デメリット、さらに埋め込みやグラフの公開、IMAGE関数と組み合わせた裏技など、使えそうだ!と思った方は是非活用してみてください。

ただし、ウェブに公開であれば リンク共有と違ってオーナーの身バレを防止すると書きましたが、Googleの仕様変更やミスによって身バレは絶対にないとは言い切れません

事実、過去にGoogleフォームは フォームの回答者のGoogleドライブに フォームのファイル(編集画面)が表示されてしまうという事故がありました。

 👆まぁこれは フォームの編集権限を リンクを知っている全員という設定にしていたことも要因ですが。

便利だけど過信はしすぎないほうが良いです。特に無料で使っている場合は、文句言えないですし。

リスクを理解した上で「ウェブに公開」機能を上手に使って、公開名人を目指しましょう!

次回はGoogleスプレッドシートの関数ネタを予定。



 










いいなと思ったら応援しよう!

mir
チップ大歓迎です。やる気がアップしますw