• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel vba 非表示のシートに入力するには?)

Excel VBAで非表示のシートに入力する方法

このQ&Aのポイント
  • Excel VBAを使用して、非表示のシートに入力する方法を教えてください。
  • 簡単な学習ツールをExcelで作っています。シートには「問題」と「解答」の2つのシートがあり、解答シートは非表示になっています。名前と解答を入力した後、解答ボタンを押すと、非表示の解答シートに内容が反映されるようにしたいです。
  • 現在はVBAコードを使って非表示のシートにデータを入力しようとしていますが、解答シートが非表示なため、デバッグができません。非表示のシートに入力する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

非表示のシートを操作するときにSelectを使うことはできません。 単に次のようにすれば非表示のシートのデータを変更できますね。 Sheets("問題").Select Range("K1") = 0 Range("K2") = 0 Sheets("解答").Range("B2") = 0 Sheets("解答").Range("C2") = 0 Sheets("問題").Select Range("B2") = ""

momo33mama1116
質問者

お礼

解決しました! 非表示シートにSelectは使えないんですね。。 ありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! たびたびごめんなさい。 前回はBookを開いたときのコードだけでしたね! >最後に解答ボタンを押すと、入力した内容が非表示の「解答」シートに反映するような仕組みに >したいのですが・・・ の部分を忘れていました。 具体的なSheetのレイアウトが判らないので 問題Sheet上にコマンドボタンを一つ配置します。 コマンドボタンのプロパティから「Caption」を「解答」などにしておきます。 コマンドボタン上でダブルクリック → VBE画面に↓のコードをコピー&ペースト Private Sub CommandButton1_Click() With Sheets("解答") .Range("A2") = Range("B2") .Range("B2") = Range("K2") .Range("C2") = Range("K3") End With Range("K2:K3") = 0 Range("B2").Select Selection = "" End Sub ※ 1行目と最終行はダブルクリックした段階で表示されますので、2行目以降をコピー&ペーストし デザインモードを解除して コマンドボタンをクリックします。 ※ あくまで憶測ですが、余計なお世話かもしれませんけど 問題SheetのB2セルが氏名欄になっているとして B2セル → 解答SheetのA2セル K2セル → 解答SheetのB2セル K3セル → 解答SheetのC2セル に表示させるようにしてみました。 おそらくこの配置だと問題SheetのB2セルの変更があるたびに回答Sheetの2行目以降に続けて表示したい! といった操作をしたいような感じがしますが、 あまりに先走ってもいけないので この程度で・・・m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! No.1さんが仰っている通りなので、余計なお世話かもしれませんが・・・ With Sheets("問題") .Range("K1:K2") = 0 .Range("B2") = "" End With Sheets("解答").Range("B2:C2") = 0 といった具合でも大丈夫だと思います。 ※ 今回のコードの場合はあまり問題ないと思いますが、 Selection を使わない方が処理速度は速くなります。m(_ _)m

関連するQ&A