
エクセルで簡単な学習ツールを作っています。
シートは「問題」シートと「解答」シートの2シートがあり、「解答」シートは非表示になっています。
「問題」シートで解答者の名前をプルダウンで選択し、正解だと思う解答のラジオボタンを選択し、
最後に解答ボタンを押すと、入力した内容が非表示の「解答」シートに反映するような仕組みに
したいのですが、どうすればうまくいきますか?
現在
Private Sub workbook_open()
Sheets("問題").Select
Range("K1") = 0
Range("K2") = 0
Sheets("解答").Select
Range("B2") = 0
Range("C2") = 0
Sheets("問題").Select
Range("B2") = ""
End Sub
と入力していますが、「解答」シートが非表示になっているためデバックになります。
非表示の「解答」シートに入力内容が反映する方法を教えてください。
No.1ベストアンサー
- 回答日時:
非表示のシートを操作するときにSelectを使うことはできません。
単に次のようにすれば非表示のシートのデータを変更できますね。
Sheets("問題").Select
Range("K1") = 0
Range("K2") = 0
Sheets("解答").Range("B2") = 0
Sheets("解答").Range("C2") = 0
Sheets("問題").Select
Range("B2") = ""
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
No.2
- 回答日時:
こんにちは!
No.1さんが仰っている通りなので、余計なお世話かもしれませんが・・・
With Sheets("問題")
.Range("K1:K2") = 0
.Range("B2") = ""
End With
Sheets("解答").Range("B2:C2") = 0
といった具合でも大丈夫だと思います。
※ 今回のコードの場合はあまり問題ないと思いますが、
Selection を使わない方が処理速度は速くなります。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
5
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
6
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
7
エクセル・マクロ シートの非表示でマクロのエラー
Visual Basic(VBA)
-
8
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
9
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
10
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
11
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
12
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
15
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
16
セルをマクロのボタンにしたい。
Visual Basic(VBA)
-
17
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
18
シートが保護されている状態で、セルを選択した時に表示されるメッセージ
Visual Basic(VBA)
-
19
(Excel+VBA)ユーザーフォームのみ表示で完結させたい。
Excel(エクセル)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel vba 非表示のシートに入...
-
エクセルの切り取りと貼り付け...
-
【エクセル】異なったシートの...
-
エクセルの表の固定
-
VBAで長さ0の文字列をNullに変...
-
Excel 「コピーした図」に関して
-
Excelの行の抽出について質問で...
-
縦書きのトーナメント表の作り方
-
結合セルに結合していないセル...
-
特定の行を固定
-
Excelの表からカウントしたい
-
Excel で3行目、6行目、9行目...
-
Winmerge ファイルの中身は同じ...
-
FTPでファイルがダウンロードで...
-
emlをtxtに変換するには?
-
教えてください!困ってます。
-
嫌ってるのに真似してきたりマ...
-
拡張子.dどういう意味
-
コマンドプロンプトによるフォ...
-
ファイルに鍵をかける方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの切り取りと貼り付け...
-
【エクセル】異なったシートの...
-
Excel で3行目、6行目、9行目...
-
結合セルに結合していないセル...
-
VBAで長さ0の文字列をNullに変...
-
excel vba 非表示のシートに入...
-
EXCEL VBAでコピーす...
-
エクセル ブック全体 セル結...
-
エクセルの表組み、セルの固定...
-
エクセルの範囲指定を規則的に...
-
sheet1からsheet2に飛ばす(エ...
-
Excel countifの複数条件
-
エクセル
-
エディタのviで行数を指定せず...
-
エクセル計算式の複写について
-
EXCEL のVLOOKUPについて
-
縦書きのトーナメント表の作り方
-
エクセルでセルの結合
-
困っています。Excelで
-
Excelのシートに別のシートの表...
おすすめ情報