TOP メニュー

2010年3月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
フォトアルバム

カテゴリー「提出物管理」の7件の投稿

2007年3月31日 (土)

得点ランダム入力5

前回までは3行マクロに拘り、実用性の面から見ると今ひとつの作品でした。

今回はIF文により、出席番号が1桁の場合と2桁の場合とで処理を別にして

いるので出席番号と得点を「.」(ドット)などで区切らなくても差し支えありません。

!!ランダム点数入力3 by くまぷー
!!2007/03/31
!!出席番号(2桁)と得点(3桁)を
!!「出席番号得点」の形式でランダムに入力すると
!!名前の横にその者の得点が表示される。

!!入力例
!!出席番号7番が87点の場合→7087
!!出席番号15番が100点の場合→15100
!!出席番号9番が5点の場合→9005

Range("E2:E41").Clear(1, false, false, false)

For %i = 2 To 41

   If Len(Cells(%i, 1)) = 5 Then 
        %出席番号=Left(Cells(%i, 1), 2)
   Else
        %出席番号=Left(Cells(%i, 1), 1)
    End If
   Cells(%出席番号 + 1, 5) =Value(Right(Cells(%i, 1),3))

Next

snsSample004.zipをダウンロード

Snsteisyutu005

 

2007年3月30日 (金)

得点ランダム入力4

下が固定長文字列を利用した場合のコードです。

!!ランダム点数入力2 by くまぷー
!!2007/03/30
!!出席番号(2桁)+得点(3桁)の固定長文字列
!!出席番号得点の形式でランダムに入力すると
!!名前の横にその者の得点が表示される。

!!入力例
!!出席番号7番が87点の場合→07087

!!出席番号15番が100点の場合→15100
!!出席番号9番が5点の場合→09005

!!下は初期化コード。感嘆符を外せば有効になります。
!!Range("E2:E41").Clear(1, false, false, false)

For %i = 2 To 41
             Cells( left(Cells(%i, 1),2) + 1, 5) =Value(Right(Cells(%i, 1),3))
Next

やはり、3行マクロです。しかし、このマクロを利用する場合

一つ注意しなければならないことがあります。

それは半角で07065などと入力すると自動的に

7065になってしまうということです。頭の0が消えて

5桁が4桁になってしまうとマクロが正常に動作しません。

このことの対策としてメニューを「ツール」「オプション」と辿り

ダイアログボックスの「入力」タブから「入力モード変換」を

「手動」にして数字を全角で入力できるようにしておきます。

ランダム点数入力2)snsSample003.zipをダウンロード

Snsteisyutu003

得点ランダム入力3

【´・ω・`】:得点ランダム入力の3行マクロはどうだった?

`ε´):まあまあだな。おれはもの凄い面倒くさがりなんだ。

       できるなら「6.066」の小数点も打ちたくないな。

       数字だけ打てばいいようにしたいものだな。

       特にノートパソコンのユーザは数字とドットのキーが離れているしな。

【´・ω・`】:じゃあ、固定長の文字列を使って出席番号と

     得点を表現するってのはどうだい?

     固定長の文字列とは単純に言えば

     文字数の決まった文字列のことだ。

     例えば出席番号が2桁、得点が3桁までなら下のように表せる。

Snsteisyutu002

  

この場合なら出席番号が12、得点が89点ということだね。

`ε´):やっぱり、3行マクロなんだろうな?!

【´・ω・`】:うん。

得点ランダム入力2

!!ランダム点数入力 by くまぷー
!!2007/03/30
!!出席番号(2桁)と得点(3桁)を
!!出席番号.得点の形式でランダムに入力すると
!!名前の横にその者の得点が表示される。

!!入力例
!!出席番号7番が87点の場合→7.087
!!出席番号15番が100点の場合→15.1
!!出席番号9番が5点の場合→9.005

!!下は初期化コード。感嘆符を外せば有効になります。
!!Range("E2:E41").Clear(1, false, false, false)

For %i = 2 To 41
    Cells( Int(Cells(%i, 1)) + 1, 5) =(Cells(%i, 1) mod 1) * 1000
Next

正味、たったの3行です。

ランダム点数入力Sample002.zipをダウンロード

得点ランダム入力

前回の提出物管理3行マクロは如何だったでしょうか?

ただ前回のは「提出の有無」をチェックするだけです。

あれに付け加えて評価も自動的に名簿に

記入されるようにできないでしょうか?

中間・期末などの定期試験ならば

解答用紙が出席番号順に並んでいるからいいですけど

小テストや課題などは出席番号順に出てこないから

採点処理した評価を名簿に記入するのは結構面倒です。

そんなことが簡単にできたら便利だろうと思い

「得点ランダム入力マクロ」を紹介します。

☆マクロ仕様

出席番号(2桁)と得点(3桁)を
出席番号.得点の形式でランダムに入力すると
名前の横にその者の得点が表示される。

☆入力例
出席番号7番が87点の場合→7.087
出席番号15番が100点の場合→15.1
出席番号9番が5点の場合→9.005

(●`ε´●):今度も3行でやってみろよ。

【´・ω・`】:3行かい?

(●`ε´●):そのくらいの芸を見せてみろよ。

【´・ω・`】:わかったよ・・・。ちょっと待っててね。

Snsteisyutu001_2

2007年3月29日 (木)

提出物管理2

下がコードの中身です。

!!提出物管理 by くまぷー
!!2007/03/29
!!提出者の番号をランダムに入力すると
!!提出Check欄に○印が表示される。

For %i = 2 To 41
   Cells( Cells(%i, 1)+ 1, 5) ="○"
Next

たったのこれだけ、3行です。

ちなみにCells()はセルを指定する関数です。

Range()は記録マクロで使われるので

有名ですがCells()は記録マクロでは

使われないので、けっこう知らない方もいるようです。

Range("B3")ならばCells(3,2)

Range("C2")ならばCells(2,3)と表すことが出来ます。

つまり・・・A列、B列、C列をそれぞれ1列、2列、3列と考えて

Cells(行番号, 列番号)

・・・となります。

ループのなかではRange()よりもCells()の方が

使い勝手が良いようです。

補足)

実はサンプルとして紹介した

「提出物管理マクロ」には初期化コードが

ありません。従ってE列に1回書き込まれた

○印は自動的にはクリアーされません。

自動的にクリアーしたいのならば

For %i = 2 To 41

の上に、初期化コード

Range("E2:E41").Clear(1, false, false, false)

を加えてください。

提出物管理

そろそろ新学期です。新学期になると何かと

提出物を集めるという煩わしい仕事が待っています。

なかなか提出物が集まらなくて鬱になります(-_-;)

つまらない事務仕事にかける時間を減らし

少しでもラクをするために「提出物管理マクロ」を

作ってみました。

「提出物管理マクロ」仕様

提出物を出席番号順に揃え直すことなく

出した生徒の番号を、

集めた順に適当に入力すると

提出した生徒名の横に「○」印がつく

機能的にはこのサイトで紹介しているエクセル関数版と
同じです。しかし、売りは同じ機能を3行マクロで
実現しているというところです。
Snsteisyutu
希望があればマクロの解説をします。
提出物管理マクロ:SnsTeisyutu.lzhをダウンロード
使用ソフト:三四郎9