クリック・入力・選択・コピー|PC・ブラウザ・ファイルの基本

このページはプロモーション(広告)を含みます。

PC・ブラウザ・ファイルの基本(初級・読む20分+演習30分)

この授業のゴール

仕事でどう使うか

データの仕事の失敗は、高度な手法より入力と貼り付けの小さなずれから始まることが多くあります。「120」と「120」は人間には同じに見えますが、コンピューターには別の文字列です。

路線 この授業の使いどころ
DS(データサイエンティスト) 表計算やBIツールの数値を分析ノートへ貼る。全角数字や末尾の空白が混ざると、結合キーが一致せず行が落ちる
ML(機械学習エンジニア) ラベルやカテゴリ名の手入力。「A」と「A」と「A 」が別カテゴリになり、クラス数が増えて学習が崩れる
DX(DX推進・AI企画) 現場担当者の入力ルールを決める。入力欄の仕様(半角のみ、前後空白を除く)が、後工程の集計の正しさを左右する
RS(研究者) 論文の表やメモから数値を転記する。転記ミスは再現性の問題になり、貼り付け後の目視確認が必須になる

この授業では、操作の手順を、操作前の状態→操作→操作後に確認する点のセットで覚えます。

前提

前提は 画面とブラウザの役割 の「ブラウザ内の記録」と「保存済みの表示」だけです。マウスとキーボードの基本的な使い方は、実際に手を動かして確認します。

Macでは Ctrl を Command(⌘)に読み替えてください。

身近な状況:貼ったのに計算できない価格

Cさんは、店の価格表をコピーして分析ノートに貼り付けました。合計を出そうとしましたが、エラーになったり、答えが合わなかったりしました。表を見ると、価格の列は次のようでした。

商品 見た目の価格 実際の文字
りんご 120 半角の 120
みかん 1,200 半角の数字とカンマ 1,200
バナナ 80 全角の 80 と末尾の空白

人間には3つとも「数」ですが、Pythonには、2行目はカンマ入りの文字列、3行目は全角数字と空白入りの文字列です。そのままでは足し算ができません。

原因は、操作が悪かったのではなく、貼り付けた内容を確認する手順がなかったことです。この授業では、(1) 範囲を正しく選ぶ、(2) 正しくコピーして貼る、(3) 貼った後の中身を確認する、の3つをセットで身につけます。

直感的な説明:4つの動作と、手元の付箋

基本操作は4つの動詞でできています。

動詞 意味 例
クリック 位置を決める。文字を入れる場所(カーソル)や、対象のボタンを指す ノート欄の途中をクリック
入力 その位置に文字を置く 日本語の変換を確定して入れる
選択 対象を決める。範囲に色が付く 単語をダブルクリック
コピー/貼り付け 選択した内容を複製して別の場所へ置く 数値をノートへ貼る

クリップボードは、机の上の付箋1枚だと考えてください。コピーするたびに付箋は書き換わり、前の内容は消えます。切り取りは「元の場所から消して、付箋に写す」操作なので、次にコピーすると、元の内容はどこにも残りません。

たとえの限界:付箋と違い、PCによっては履歴を保存する機能もあります。ただし、履歴は環境依存なので、大事な内容を切り取った後に別のコピーをしないことを基本ルールにします。

正確な定義:選択の種類、ショートカット、見えない文字

選択の操作

操作 選ばれる範囲
ダブルクリック 単語(日本語では区切りの判定が環境により違う)
トリプルクリック 段落(1行や1段落全体)
ドラッグ 押した位置から離した位置まで
Shift+クリック 先に選んだ位置から、クリックした位置まで
Ctrl+クリック 離れた複数の対象を追加(表計算などで有効)
Ctrl+A その入力欄やページの全体(全選択)

主なショートカット(Windows・Linux。Macは Ctrl を Command に):コピー Ctrl+C、切り取り Ctrl+X、貼り付け Ctrl+V、元に戻す Ctrl+Z、検索 Ctrl+F。書式を除いて貼る Ctrl+Shift+V は、アプリによって使えないことがあります。

見えない文字。画面には現れないが、文字列には含まれるものがあります。

文字 Pythonでの書き方 影響
半角空白 " " 前後に付くと、"来店者" == "来店者 " が偽になる
全角空白 "\u3000" 見た目が広い空白。除去しないと残る
改行 "\n" 行の区切り。末尾に付くことが多い
タブ "\t" 表計算からコピーすると、列の区切りになる
全角数字 "120" "120" == "120" は偽
a = "120"
b = "120"
c = "来店者"
d = "来店者 "
print(a == b, len(a), len(b))
print(c == d, len(c), len(d))
print(repr("価格\t120\n"))

出力は False 3 3、False 3 4、'価格\t120\n' です。len は文字数を返す関数で、引数は文字列、戻り値は整数(int)です。repr は見えない文字を含めて表示します。

段階付き例題:表計算からコピーした表を合計する

表計算ソフトの範囲をコピーしてテキスト欄に貼ると、列はタブ、行は改行で区切られた文字列になります。次の pasted は、そのようにして得られた文字列の例です(商品名と価格は架空)。

問題:価格の合計を求める。価格には、カンマ、全角数字、前後の空白が混ざっている。

ステップ1:入力を確認する。repr で見えない文字を出し、区切りが \t と \n であること、空行があることを確認する。

ステップ2:行に分ける。splitlines()(文字列を行のリストにするメソッド)を使う。

ステップ3:列に分ける。各行を split("\t") で分ける。

ステップ4:数に直す。全角を半角にする unicodedata.normalize("NFKC", s)、前後の空白を除く strip()、カンマを除く replace(",", "")、最後に int(...)。

ステップ5:合計し、件数と照合する。

import unicodedata
pasted = "商品\t価格\nりんご\t120\nみかん\t1,200\n\nバナナ\t80 \n"
print(repr(pasted))

def to_int(text):
    t = unicodedata.normalize("NFKC", text).strip().replace(",", "")
    return int(t)

total = 0
count = 0
for line in pasted.splitlines()[1:]:      # 先頭行は見出しなので除く
    if not line.strip():                  # 空行は飛ばす
        continue
    name, price = line.split("\t")
    total += to_int(price)
    count += 1
print(count, total)

出力は、最初に '商品\t価格\nりんご\t120\nみかん\t1,200\n\nバナナ\t80 \n'、次に 3 1400 です。120+1200+80=1400、商品は3件です。

ステップ6:意味を確認する。貼り付け元の表の行数(3商品)と count が一致し、元の表の合計を表計算ソフトで出した値とも一致するか見ます。貼った後に件数と合計を照合することが、貼り付けミスの検出になります。

操作して理解する:自分のノートで確かめる

次の手順を、実際の画面で行ってください。各手順の最後に確認することがあります。

手順 操作 確認すること
1 ノート欄に「購入率=購入者÷来店者」と入力し、確定する 変換の途中の下線が残っていないか
2 「来店者」をダブルクリックして選択し、Ctrl+C 選択の色が付いた範囲が単語と一致するか
3 文末をクリックして Ctrl+V 末尾に余分な空白や改行が入っていないか
4 Ctrl+Z を押す 貼り付けが取り消されるか
5 全体を Ctrl+A で選択して Ctrl+X し、すぐ Ctrl+Z 切り取った内容が戻るか

次のコードで、「切り取ってから別のものをコピーすると元が消える」仕組みを模型で確認できます。

clipboard = None
note = "購入率の分母は来店者"

def cut():
    global clipboard, note
    clipboard, note = note, ""

def copy(text):
    global clipboard
    clipboard = text

cut()
print("切り取り後:", repr(note), repr(clipboard))
copy("別の文")
print("別コピー後:", repr(note), repr(clipboard))

出力は 切り取り後: '' '購入率の分母は来店者'、別コピー後: '' '別の文' です。元のノートは空で、クリップボードも上書きされたため、文は失われました。Ctrl+Z(元に戻す)が間に合うかどうかは環境次第なので、切り取りの後は、先に貼り付けてから次のコピーをします。

発展:書式付き貼り付けと、貼ってはいけない情報

Webページや表計算からコピーすると、文字だけでなく書式(フォント、色、リンク、表の構造)も一緒にクリップボードに入ることがあります。貼り付け先が書式を受け付けると、見えない要素(リンク先、非表示の文字)が混ざります。書式を除いて貼る機能(プレーンテキストとして貼り付け)が使える場合は、分析用のデータにはそちらを使います。

実務では、次の点も確認してください。

どの動作が起きるかは、アプリと版によって違います。執筆時点(2026年)の一般的な説明であり、実際の動作は自分の環境で、小さな例を貼って確かめてください。

よくある失敗

失敗1:全角数字を足し算しようとして、数にならない

誤ったコード:

price_a = "120"
price_b = "80"
print(price_a + price_b)
print(price_a == "120")

出力は 12080 と False です。文字列の + はつなぐ操作で、足し算ではありません。しかも "120" は "120" と等しくありません。

直し方:NFKCで正規化してから int にします。int(unicodedata.normalize("NFKC", price_a)) + int(price_b) で 200 になります。入力欄の仕様で「半角数字のみ」とするのも、DX側の対策です。

失敗2:末尾の空白や改行が付いて、同じ名前が一致しない

誤った例:コピーした「来店者」の末尾に空白が付いていた。

master = ["来店者", "購入者"]
pasted = "来店者 "
print(pasted in master)
print(pasted.strip() in master)

出力は False と True です。ラベルの結合や検索が失敗する、よくある原因です。

直し方:貼り付け後に strip() で前後の空白と改行を除く。除いた後の長さを len で確認する。全角空白(\u3000)も strip() で除かれます。

失敗3:切り取りの後に別のコピーをして、元の内容を失う

誤った手順:長い一文を切り取り、貼り付け先を探している途中で、別の語をコピーした。クリップボードは上書きされ、切り取った文は元の場所にも貼り付け先にもありません。

clipboard = "長い一文(切り取り済み)"
clipboard = "別の語"       # 上書き
print(clipboard)

出力は 別の語 です。以前の内容は戻りません。

直し方:大事な文は切り取りではなくコピーを使う。移動したいときは、貼り付けてから元を消す。切り取りの直後に別のコピーをしてしまったら、すぐ元の場所で Ctrl+Z を試す。

まとめ

用語

クリップボード(clipboard)

コピーや切り取りをした内容を一時的に置く場所。OSが管理し、普通は直前の1つだけが残る。

NFKC正規化(NFKC normalization)

全角の英数字などを半角の標準形にそろえる、Unicodeの正規化方式。

タブ区切り(tab-separated values (TSV))

列の区切りにタブ文字を使う形式。表計算からコピーしたときの標準的な形。

ショートカットキー(keyboard shortcut)

キーの組み合わせでメニュー操作を呼び出す方法。Macでは Ctrl が Command になる。

よくある質問

なぜ全角と半角の違いがそれほど問題になるのですか?

コンピューターは文字を見た目ではなく文字コードの番号で比較するからです。全角の「1」と半角の「1」は別の番号です。結合キー、検索、数値変換のすべてで、見た目が同じでも一致しません。

コピーと切り取りは、どう使い分けますか?

内容を残したいときはコピー、場所を移したいときは切り取りです。ただし切り取りは、貼り付けるまで内容が付箋1枚にしかない状態になります。大事な内容は、コピーで貼ってから元を消すほうが安全です。

NFKC とは何ですか?

Unicodeという文字の規格にある正規化の方式の1つで、全角の英数字や記号を半角にそろえるなど、見た目が同じ文字を共通の形に直します。ただし、「ア」を「ア」にするなど、他の変換も行うので、使う範囲に注意します。

貼り付けたときに先頭の0が消えるのはなぜですか?

貼り付け先が数値だと判断して、数に変換してしまうためです。郵便番号や商品コードのように、数ではなく識別用の文字列は、貼り付け先の列を文字列の形式にしてから貼ります。0と欠損も別のものです。

ショートカットは覚えないといけませんか?

メニューからも同じ操作ができるので、暗記が目的ではありません。ただし、コピー・貼り付け・元に戻すの3つは、作業の速さと失敗からの復帰に直結するので、使えるようにしておくと実務で楽になります。

仕事でデータを貼り付けるとき、何を確認すればよいですか?

(1) 行数と列数、(2) 合計などの代表値、(3) 先頭と末尾の数行、(4) 空白や全角が混ざっていないか、の4点です。確認した結果をノートに1行でも書き残すと、後から手順をたどれます。

確認問題

問1 ノートの一部を別の場所へ移したい。内容を失うリスクが最も小さい手順はどれか。

  1. ① 切り取って、すぐ別の文をコピーしてから探す
  2. ② コピーして貼り付け、貼れたことを確認してから元を削除する
  3. ③ 切り取って、貼り付け先を探している間に別の作業をする
  4. ④ 選択せずに貼り付けボタンだけ押す
解答と解説

正解:②

コピーはクリップボードにだけ複製を作り、元は残ります。貼り付けを確認してから元を消せば、途中で失敗しても戻れます。

問2 "120" == "120"(右は全角)の結果と理由として正しいのはどれか。

  1. ① True。見た目が同じだから
  2. ② エラーになる。全角は使えないから
  3. ③ True。Pythonは全角を自動で半角にするから
  4. ④ False。別の文字コードの別の文字だから
解答と解説

正解:④

全角の「1」と半角の「1」は別の文字です。比較は文字そのものの一致で行うので False になります。

問3 表計算の範囲をコピーしてテキストに貼り付けたとき、列の区切りになる文字はどれか。

  1. ① タブ(\t)
  2. ② カンマ(,)
  3. ③ 全角空白
  4. ④ セミコロン(;)
解答と解説

正解:①

表計算の範囲をコピーすると、列はタブ、行は改行で区切られるのが一般的です。CSVファイルのカンマ区切りとは別の形式です。

問4 貼り付けた商品名 "りんご "(末尾に半角空白)を、マスタの "りんご" と結合しようとした。何が起こるか。

  1. ① 問題なく一致する
  2. ② 末尾の空白は自動的に無視される
  3. ③ 一致せず、その行がマスタと結び付かない
  4. ④ 先頭の文字だけで一致を判断する
解答と解説

正解:③

文字列の比較は末尾の空白も含めて行われます。一致しないと結合で行が落ちたり、欠損が生まれたりします。

問5 貼り付けた価格 "1,200" を int() に直接渡すと、どうなるか。

  1. ① 1200 になる
  2. ② 1 になる
  3. ③ 1200.0 になる
  4. ④ ValueError(数として読めないエラー)になる
解答と解説

正解:④

カンマを含む文字列は整数として解釈できず ValueError になります。カンマを除いてから int に渡します。

問6 貼り付けた後に必ず行う確認として、最も有効なものはどれか。

  1. ① 見た目が整っていれば確認は不要
  2. ② 貼り付け前後の件数と合計を元の表と照合する
  3. ③ 貼り付けの回数を数える
  4. ④ ブラウザを再起動する
解答と解説

正解:②

見た目が同じでも別の文字が混ざる可能性があります。件数と合計を元と照合すると、行の欠落や変換ミスが見つかります。

次に学ぶこと

次は ファイル・フォルダ・拡張子 で、ファイル・フォルダ・拡張子を扱います。貼り付けた文字列をファイルとして保存するところまで進みます。文字コードの詳しい話は 文字コードと安全なファイル確認 です。

この授業の確認問題だけでモジュールの習得とはしません。ON01 の総合テストと、CSVを使った自力課題で判定します。

キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。

アプリを無料で開く有料版と無料版の違い