※本記事はプロモーションを含みます。
ChatGPTに「このエラーを直して」とコードを貼ったのに、直らない。むしろさっきより変な方向に修正されてしまった――プログラミングを勉強し始めた人なら、一度はぶつかる壁ではないでしょうか。
実はこれ、ChatGPT側の性能不足というより「質問の仕方」でつまずいているケースがかなり多いです。実際に触っていると、聞き方を少し変えるだけで、同じエラーでもすんなり解決することがよくあります。この記事では、コードが動かないときにありがちな原因と、初心者でもすぐ真似できる質問の組み立て方を、具体例つきで整理します。
「コードが動かない」ときにありがちな2つの状態を分けて考える
まず整理しておきたいのが、「動かない」には実は2種類あるという点です。
- ①ChatGPT自体の応答が止まる・返ってこない(読み込み中のままフリーズする、エラーメッセージが出る)
- ②ChatGPTは答えてくれるが、提案されたコードが実行してもエラーになる・意図通り動かない
この2つは原因も対処法もまったく違います。①はブラウザや通信環境、セッションの問題であることが多く、②は質問(プロンプト)の情報不足であることが多いです。混同したまま「なんかおかしい」と感じている人が多いので、まずどちらの状態かを切り分けましょう。
①応答が止まる・返ってこないときにまず確認すること
「入力しても読み込み中のままぐるぐるしている」「エラーメッセージが出て止まる」という場合、コードの中身以前の問題であることがほとんどです。以下の順番で確認してみてください。
- ブラウザの拡張機能(翻訳ツールや広告ブロッカーなど)を一度オフにして再読み込みする
- VPNやプロキシを使っている場合は切ってみる
- 同じチャット内でやり取りが長くなっていないか確認し、長ければ新しいチャットを開き直す
- OpenAIの障害情報ページ(status.openai.com)で大規模な障害が起きていないか確認する
会話が長くなるほど、ChatGPTは過去のやり取り全体を踏まえて処理しようとするため、応答が重くなったり止まったりしやすくなります。エラーが出たらまず「新しいチャットを開く」を試すだけで解決することも少なくありません。
それでも直らない場合は、ブラウザの開発者ツールで取得できるログ(HARファイル)を添えてOpenAIのサポートに問い合わせる方法もありますが、ここまで進む前に大抵は上記のどれかで解決します。
②コードは出てくるけど動かない、を解決する「質問の設計」
ここからが本題です。ChatGPTが答えてくれているのに、提案されたコードがエラーになる、あるいは的外れな修正をしてくる場合、原因の多くは「情報不足の質問」にあります。
初心者にありがちなNGな質問はこのような形です。
このコード動かないので直してください
def calc(a, b):
return a / b
これだと、ChatGPTは「何が起きたか」を知らないまま推測で答えるしかありません。実際にやってみると、こういう質問には「一般的にありそうな原因」を並べた回答が返ってくることが多く、あなたの環境では解決しないケースが目立ちます。
改善するには、次の4つの情報を必ずセットで伝えます。
| 伝えるべき情報 | 具体例 |
|---|---|
| 実行環境 | Python 3.11 / Google Colab など |
| 実際に出たエラーメッセージ全文 | ZeroDivisionError: division by zero |
| 期待していた動き | b=0のときは0を返してほしい |
| 該当コード全体(一部省略しない) | 関数全体・呼び出し部分まで含める |
この4点を含めると、質問はこう変わります。
Python 3.11で以下のコードを実行すると
「ZeroDivisionError: division by zero」というエラーが出ます。
b が 0 のときはエラーを出さずに 0 を返すようにしたいです。
コード全体は以下の通りです。
def calc(a, b):
return a / b
print(calc(10, 0))
この形にするだけで、ChatGPTは「何が問題で」「何を実現したいか」を推測ではなく事実として受け取れるため、的確な修正コードと理由の説明を返しやすくなります。
中級者向け:一歩進んだ質問テクニック
基本の4点セットに慣れてきたら、次のような工夫でさらに精度が上がります。
- 「一度に1つの修正」だけを依頼する:複数の不具合をまとめて質問すると、ChatGPTがどこを直すべきか迷い、関係ない部分まで書き換えてしまうことがあります。
- 「なぜそのエラーが起きるか説明してから直して」と頼む:原因説明を先に求めると、見当違いの修正が減りやすくなります。
- ChatGPT内蔵のコード実行機能(2026年時点でCodexとして提供)を使う場合は、実行結果のログもそのまま貼る:出力ログには推測では気づけない手がかりが含まれていることが多いです。
- 修正後は「変更点だけ一覧で教えて」と依頼する:差分が把握しやすくなり、自分の理解にもつながります。
よくある誤解・NGな質問パターン
- 「これ合ってますか?」だけ聞く:何を基準に合っているか分からず、表面的な「大丈夫そうです」で終わりがち。
- コードの一部分だけ貼る:呼び出し側や変数の初期値が省略されると、原因の切り分けができません。
- エラーメッセージを自分の言葉で要約して伝える:「なんかエラーが出ます」ではなく、エラーメッセージは必ずそのままコピーしましょう。要約の過程で重要な情報が抜け落ちることがあります。
- 同じチャットで話題を転々とさせる:別の言語や別の目的のコードを同じ会話で続けて質問すると、文脈が混ざり、直前の指示を忘れたような回答が返ることがあります。
FAQ
Q. エラーメッセージが英語で長いのですが、全部貼る必要がありますか?
はい、省略せずそのまま貼るのがおすすめです。エラーメッセージの後半にファイル名や行番号など、原因特定に重要な情報が含まれていることが多いためです。
Q. 何度聞いても同じ的外れな回答が続きます。
会話が長くなって過去のやり取りに引っ張られている可能性があります。一度新しいチャットを開き、上記の4点セットで質問し直してみてください。
Q. コードを全部貼るのは抵抗があります。一部だけではダメですか?
短い関数程度であれば全体を貼るのが安全です。どうしても長い場合は、エラーが起きている関数とその呼び出し部分だけは省略せずに含めるようにしましょう。
まとめと次の一歩
ChatGPTで「コードが動かない」と感じたときは、まず①応答自体が止まっているのか、②コードの中身が期待通りに動かないのかを切り分けることが第一歩です。①であればブラウザ環境やセッションのリセット、②であれば「実行環境・エラーメッセージ全文・期待する動き・コード全体」の4点セットを意識するだけで、回答の精度は大きく変わります。
次にエラーに遭遇したら、まず4点セットを箇条書きでメモしてから質問してみてください。慣れてくると、この整理作業自体がデバッグ力の練習にもなっていきます。
関連サービス
関連商品(楽天)
ゲームプログラミング 解説本 入門書 ガイドブック 初心者向け わかりやすい 仕組み 学習 制作 プログラム 基礎知識(3,050円)


コメント