前回はGoogleスプレッドシートをWordPressに埋め込む手順を解説しました。パソコンのブラウザで確認すると綺麗に表示されていても、スマホで見ると横に切れてしまう・文字が小さすぎるという問題が起きやすいです。
今回はこの「スマホでの見え方問題」を解消します。対策は2つあります。ひとつはスプレッドシート側で列を整理すること、もうひとつはWordPress側のCSSでiframeを画面に合わせて伸縮させることです。難しそうに聞こえますが、コピー&ペーストで完結する作業なので安心してください。
なぜスマホで見づらくなるのか
問題の原因を先に理解しておくと、対策がスムーズに理解できます。
| 原因 | 具体的な症状 | 対策 |
|---|---|---|
| 列数が多い(野手シートは19列) | 表が横に広すぎてスマホ画面に収まらず、右側が切れる | 列を絞る・列幅を狭くする |
| iframeの幅が固定されている | 画面の横幅より広い固定幅のiframeが、スマホ画面をはみ出す | CSSでiframeをレスポンシブ化する |
前回の埋め込みコードで width="100%" を設定しましたが、それだけでは不十分なケースがあります。iframeの中身(スプレッドシートの表)自体が横に広い場合、iframeの枠は100%でも中身がはみ出てしまうのです。これが「スマホで横に切れる」問題の本質です。
対策①:スプレッドシート側で表示列を整理する
スマホで19列全部を見やすく表示するのはどうしても難しいです。「スマホで必ず見てほしい列」と「なくても困らない列」を分けて、後者を非表示にするのが現実的な解決策です。
Googleスプレッドシートの「列を非表示」は、列のデータを消すのではなく表示だけをオフにする機能です。計算式は非表示にした列のデータを引き続き参照できますし、いつでも再表示できます。
野手シートの19列のうち、スマホ表示で優先度が低い列の例を示します。
| 列 | 項目名 | スマホ優先度 | 理由 |
|---|---|---|---|
| A | 試合日 | ★★★ 高 | どの試合の成績か識別に必須 |
| C | 打順 | ★★★ 高 | 打順確認のため必要 |
| D | 選手名 | ★★★ 高 | 誰の成績か識別に必須 |
| G・H・I・J | 打数・安打・本塁打・打点 | ★★★ 高 | 試合後に最初に確認する主要成績 |
| B・E | 〇試合目・守備 | ★★ 中 | あると便利だが非表示でも支障は少ない |
| L・M・P・Q・R・S | 二塁打・三塁打・犠打・犠飛・敵失・併殺打 | ★ 低 | 詳細を確認したいときはパソコンで見ればよい |
「スマホ優先度:低」の列を非表示にすることで、表を7〜8列程度にまとめられます。手順はこうです。
列見出し(B・E・L・M・P・Q・R・Sなど)をCtrlキーを押しながらクリックして複数選択します。
選択した列の見出し上で右クリックし、「列を非表示」をクリックします。選択した列がまとめて非表示になります。再表示したい場合は、非表示列の両隣を選択して右クリック→「列を再表示」で元に戻せます。
スプレッドシートで列を非表示にすると、ウェブに公開・埋め込みした表示にも自動で反映されます。「パソコンでスプレッドシートを直接見るときは全列表示、ホームページの埋め込みではスリム表示」——という使い分けは残念ながらできません。どちらかに統一する必要があります。
対策②:列幅を統一して詰める
非表示にしない列についても、列幅を必要最小限に絞ると全体がコンパクトになります。
| 列の種類 | 推奨幅(ピクセル) | 該当列 |
|---|---|---|
| 試合日 | 70〜80px | A列 |
| 選手名 | 80〜90px | D列 |
| 打順・守備など1〜2文字の列 | 40〜50px | C・E列 |
| 数値列(打数・安打など) | 40〜50px | F〜S列 |
列幅はGoogleスプレッドシートの列見出し境界線をドラッグして変更するか、列見出しを右クリック→「列のサイズを変更」で数値入力できます。
対策③:フォントサイズを小さくする
Googleスプレッドシートのデフォルトフォントサイズは10ptです。埋め込み表示では少し大きく感じることがあります。フォントサイズを9ptや8ptに下げると、同じ列幅でより多くの文字が表示できるようになります。
シート左上のグレーの四角(行番号と列番号の交差点)をクリックすると全セルが選択されます。
ツールバーのフォントサイズ欄(「10」と表示されている部分)をクリックして「9」または「8」に変更し、Enterキーを押します。全セルのフォントサイズが一括で変わります。
フォントサイズを7pt以下にすると文字が読めなくなります。スマホ実機で確認しながら調整してください。8〜9ptが読みやすさとコンパクトさのバランスがとれた目安です。
対策④:WordPressのCSSでiframeをレスポンシブ化する
スプレッドシート側を整えてもまだスマホで横にはみ出る場合は、WordPress側でCSSを追加します。「CSSって何?」という方も安心してください。コードを1か所に貼り付けるだけで完結します。
「画面サイズに応じて自動でサイズを変える」という意味です。パソコンで見ると大きく、スマホで見ると画面幅に合わせて小さくなる——というように、どの端末でも適切なサイズで表示される状態をレスポンシブといいます。
WordPressのCocoonテーマを使っている場合、追加CSSを設定する方法は2つあります。
ダッシュボードの「外観」→「カスタマイズ」→「追加CSS」を開き、下記のコードを貼り付けて「公開」をクリックします。サイト全体のiframeに適用されます。
特定のページだけに適用したい場合は、iframeコードの直前にスタイルを記述します。
方法A(追加CSS)のコードはこちらです。
/* Googleスプレッドシート埋め込みiframeのレスポンシブ対応 */
.sheet-wrap {
position: relative;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.sheet-wrap iframe {
width: 100%;
min-width: 600px;
border: none;
}
overflow-x: auto は「横にはみ出た場合はスクロールバーを表示する」という指定です。iframeを完全に画面幅に収めるのではなく、横スクロールで見られるようにします。-webkit-overflow-scrolling: touch はiPhoneでのスクロールを滑らかにするための指定です。
このCSSを使う場合、WordPressの埋め込みコードをラッパーdivで囲む必要があります。
<div class="sheet-wrap">
<iframe
src="https://docs.google.com/spreadsheets/d/【ID】/pubhtml?gid=【シートID】&single=true&widget=true&headers=false"
height="500"
frameborder="0">
</iframe>
</div>
width="100%" は削除してCSSに移してあります。height は行数に応じて調整してください。野手シートはデータが多い場合、500〜800px程度が目安です。
スマホで実際に確認する方法
WordPressで「更新」または「公開」をクリックしたら、実際のスマホで確認します。
表が横にはみ出ていても横スクロールで全列が見られればOKです。ページ全体が横にずれる(ページ自体がスクロールしてしまう)のはNGです。
スマホが手元にないときは、ChromeブラウザでF12キーを押してデベロッパーツールを開き、左上のスマホアイコン(「デバイスのツールバーを切り替え」)をクリックするとスマホ表示をシミュレートできます。iPhone・Androidの画面サイズを選んで確認できます。
表の下が途中で切れている場合はheightの値を大きくします。逆に大きすぎて空白が多い場合は小さくします。今シーズンの野手シートは1試合あたり約11選手・10試合分で110行程度のデータが想定されるため、height=”600″前後が目安になります。
第10章のまとめ:試合結果ページが完成した
第81〜84回の4回で、第10章「試合結果ページ用シートを整える」が完結しました。
| 回 | 内容 | 状態 |
|---|---|---|
| 第81回 | 試合当日(野手)シートの書式設定 | ✅ 完成 |
| 第82回 | 試合当日(投手)シートの書式設定 | ✅ 完成 |
| 第83回 | ホームページへの埋め込み設定 | ✅ 完成 |
| 第84回 | スマホ表示の最適化 | ✅ 完成 |
これで試合後にフォームから入力するだけで、ホームページの成績表がスマホでも読みやすい形で自動更新される仕組みが完成しました。
- スマホで見づらい原因は「列数が多い」と「iframeの幅が固定されている」の2つ
- スプレッドシート側:優先度の低い列を非表示にして表示列を7〜8列に絞る——削除ではないのでいつでも再表示できる
- スプレッドシート側:列幅を40〜90pxに詰める・フォントサイズを8〜9ptに下げるとよりコンパクトになる
- WordPress側:追加CSSで
overflow-x: autoを設定し、iframeを横スクロール可能なラッパーdivで囲む - 確認はスマホ実機が最善。手元にないときはChromeのデベロッパーツール(F12)のスマホシミュレートで代用できる
- これで第10章が完結——次章(第11章)はトラブルシューティング。実際の運用でよく起きるエラーを1つずつ解決していく
次回予告
次回から第11章「トラブルシューティング」に入ります。まずは「#DIV/0!エラーの原因と直し方」。「0で割った」ときに表示されるこのエラーは、打率や防御率の計算でよく遭遇します。エラーが起きる仕組みと、IFERRORで防ぐ方法を改めてわかりやすく整理します。
▶︎ 次回:【第85回】#DIV/0!エラーの原因と直し方



コメント