[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロボタンでの操作』(やま)
◎ この学校で指導を受けて出来たファイルの操作に、下記のような事を追加するのは 可能でしょうか?
完成しているファイルです。暗算での計算ですので、問題数字を表示で開始としたい。 下記セルには、下段の表から「呼び出して貼り付ける表(枠のみ)」があり、そこへ C3セルに「回数」を入れて「問題呼び出し」のマクロ(Alt+F8で実行)で「問題の数 字」が貼り付けられます。
D6:H13 1番から 5番 枠のみの表 D18:H27 6番から10番 おなじ (この表が1回分) D32:H41 11番から20番 おなじ
◎ そして、下段には「呼び出される表」があります。(20回分も作成したい) D73:H80 C72 セルには 「1」回数を表示 (現状は6回分まで) D85:H91 D99:H108
D114:H121 C113セルには 「2」回数を表示 D126:H135 D140:H149
◎ この様な状況で、次の「マクロボタン11」=「計算開始 」ををクリック すれば C3セルに入力された「回数」によって、「当該問題の呼び出し」と「タイマー開始」を 起動させることに、追加記述ができるでしょうか?
Sub ボタン11_Click()
Range("A1").Value = Now + TimeValue("00:03:00") Application.OnTime Range("A1").Value, "セルの選択"
End Sub
Sub タイマー開始() Range("A1").Value = Now + TimeValue("00:03:00") Application.OnTime Range("A1").Value, "セルの選択" Application.OnTime Range("A1").Value, "セルの選択", , False End Sub
Sub セルの選択()
MsgBox "計 算 や め" Worksheets("回数入力").Activate Range("G2").Activate
End Sub Sub 問題呼出し()
Select Case Range("C3").Value
Case 1: Range("D73:H80").Copy Range("D6:H13") Range("D85:H94").Copy Range("D18:H27") Range("D99:H108").Copy Range("D32:H41")
Case 2: Range("D114:H121").Copy Range("D6:H13")
Range("D126:H135").Copy Range("D18:H27") Range("D140:H149").Copy Range("D32:H41")
End Select
End Sub
◎ 新規に、「回数確認」などの「マクロボタン」を作成しなけれダメなのか? 以上について、よろしくご教授をお願いします。
< 使用 アプリ:やま、使用 OS:WindowsXP >
全体の配置が等間隔であれば(41行間隔?)
If Range("C3").Value >= 1 And Range("C3").Value <= 最終問題番号 Then Range(最初の位置a).Offset( ( Range("C3").Value - 1) * 41 ).Copy Range(コピー先a) Range(最初の位置b).Offset( ( Range("C3").Value - 1) * 41 ).Copy Range(コピー先b) Range(最初の位置c).Offset( ( Range("C3").Value - 1) * 41 ).Copy Range(コピー先c) End If
のようにしてどうでしょうか。
(Mook) 2014/09/22(月) 13:03
(Mook)さん 2014/09/22(月) 13:03
◎ やはり、便利な方法があるのですね。ありがとうございます。 当方の所作ミスでしょうが現状は 結果=エラー400 (Microsoft VisualBasic for Application)でした。 ◎ 確認の為、下記に「表」について記します。
◎ コピー元の表 第1回(以下同じ配列です)◎ 貼り付けられる表 72行目 問題番号 (1番 から 5番) 5行目 問題番号 73-80行目 問題表示 6-13 問題表示(貼り付けるセル) 81 答えの入力 14 答えの入力セル 82 判定欄 15 判定のセル 83 スペース 16 オートサム欄(白色で見えない)
84目 問題番号 (6番 から 10番) 17 問題番号
85-94 問題表示 18-27 問題表示(貼り付けるセル)
95 答えの入力 28 答えの入力セル 96 判定欄 29 判定のセル 97 スペース 30 オートサム欄(白色で見えない)
98 問題番号 (11番 から 20番) 31 問題番号
99-108 問題表示 32-41 問題表示(貼り付けるセル) 109 答えの入力 42 答えの入力セル 110 判定欄 43 判定のセル 111 スペース 44 オートサム欄(白色で見えない) 45-71 判定する 級 などの 表 310 最終行 第6回の判定欄
◎ 問題呼び出し() の所に記述しましたが? コード です。
Sub 問題呼出し() (ThisWokbook)
If Range("C3").Value >= 1 And Range("C3").Value <= 310 Then
Range(72).Offset((Range("C3").Value - 1) * 40).Copy Range(5) Range(84).Offset((Range("C3").Value - 1) * 40).Copy Range(17) Range(98).Offset((Range("C3").Value - 1) * 40).Copy Range(31)
End If
End Sub
◎ 回数ごとの「表」自体は等間隔に表示していますが、これで、何処かに不具合が あるのですおうか? よろしく お願いします。 (やま) 2014/09/22(月) 16:01
Range(72) といった指定はありませんよ。 Range の中は文字列か Cellsによる位置指定ですので、基本は無視しないでください。
310 は行数ではなく番号です。310問作るなら現行でよいですが。
データは40行ごとなのですか? 例示は41行ごとに見えますが。
いずれにせよ、形を真似るのも良いですが、何をするコードなのかを理解して、 ご自身の意図した内容であることを納得したコードにしてください。 (Mook) 2014/09/22(月) 16:34
(Mook)さん 2014/09/22(月) 16:34
◎ できました! お陰様で、これならば、楽に20回の問題も作成できますね。
Sub 問題呼出し()
If Range("C3").Value >= 1 And Range("C3").Value <= 6 Then
Range("D73:H80").Offset((Range("C3").Value - 1) * 40).Copy Range("D6:H13") Range("D85:H94").Offset((Range("C3").Value - 1) * 40).Copy Range("D18:H27") Range("D99:H108").Offset((Range("C3").Value - 1) * 40).Copy Range("D32:H41")
End If
End Sub
(やま) 2014/09/22(月) 17:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.