dポイントプレゼントキャンペーン実施中!

 マクロ初心者

こんにちは、部活の出席簿を作っているんですけど、IDを入れれば出席簿に○がつくというシステムにする予定ですが、日付によって○をつける場所を変えたいのですが、このようなことはできますか? できればマクロを送ってくれれば助かります。

例えば・・・
11月30日には(A1)に○をつける
12月1日には(A2)に○をつける

このようなマクロです。
どうかご回答よろしくお願いします。

A 回答 (3件)

先に言っておきますが、カスタマイズ等は受け付けませんので、あとは自力で頑張ってください。

(本職ではないのでツライんですw)
あと、質問カテゴリは「デジタルライフ > Macintosh」ではなく「デジタルライフ > ソフトウェア > Office系ソフト」にした方が詳しい方がおられると思います。

とりあえず、エクセルの関数とマクロの組み合わせで素人なりに作ってみました。

とりあえずコピペしてみて
■■■■■■エクセルのシート(CSV)ここから■■■■■■
,,1,2,3,4,5,6,7,8,9
=today(),,イチロー,ジロー,サブロー,シロー,ゴロー,ロクロー,ナナコ,ハチロウ,キュウちゃん
=COUNTA(B:B),11月30日,,,,,,,,,
,12月1日,,,,,○,,,,
■■■■■■エクセルのシートここまで■■■■■■
内容をコピーして「テキストエディット」にペーストしてフォーマットを標準テキストにして「出欠簿.csv」として保存してください。
そのファイルをエクセルで開いて(A2)セルとB列を日付の書式にしてください

■■■■■■マクロここから■■■■■■
Sub 日付を追加()

END_LINE = Range("A3").Value + 3
'(A3)セルには「=COUNTA(B:B)」
'B列は日付の書式
'(A2)セルには「=TODAY()」

Range("A2").Select
Selection.Copy
Range("B" & END_LINE).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub
Sub 出欠()
INPUT_LINE = Range("A3").Value + 2
MEMBER_ID = InputBox("メンバーIDを入力してください")
If MEMBER_ID = "" Then Exit Sub
MEMBER_ID = MEMBER_ID + 2
Cells(INPUT_LINE, MEMBER_ID) = "○"
End Sub
■■■■■■マクロここまで■■■■■■
マクロは今日の日付を追加するもの と ID確認して○をつけるもの
の2種類です。

で、(日付を追加)ボタンと、(出欠)ボタンをシートに配置すればできあがりです。
メンバーIDは数字です。
あとはメンバー登録ボタンでも作ればそれっぽくなるかな...
    • good
    • 0
この回答へのお礼

いろいろしていただきありがとうございました。
がんばって完成させることができました。
これも全てdailylabさんのおかげです。
マクロの勉強になりました。
またどこかで・・
ありがとうございました

お礼日時:2007/12/01 13:47

あんまり詳しくないです...さらに詳細が不明ですのでとりあえず...


思ったことを書きます。参考になれば幸いです。

まず、今日の日付を新しい行に自動で入力するボタン(マクロ)を作成します。
today関数で今日の日付を表示するセルを用意しておきます。
日付が何列目まで入力されているのかカウントするセル〈例えば =COUNTA(2:2)〉を用意
カウントによって最新行(今日入力すべき行)が特定できますんで、今日の日付の値をソコに代入します。

メンバーIDの値をExcelの行と同じ値に設定しておけば(最新行,ID)で「○」を付けるX,Y座標が〈(5,4)みたいな感じで〉出ますね

あとは「入力」ボタンを押したらInputBox(数値)が出てメンバーIDの入力を求めるようにしておけば...
(最新行,メンバーID)の場所に○を付ける事ができる...ハズ

この回答への補足

ご回答ありがとうございます。

まだマクロのことを分かっていないので、マクロそのものを送ってくれたら幸いです。 どうぞよろしくお願いします。

例えば・・・↓
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/11/30 ユーザー名 : *****
'

'
ten = InputBox("IDを入力してください")

Select Case ten

Case 1
MsgBox "=一覧表!G2"
Sheets("出席表").Select
Range("G7").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 2
MsgBox ""
Sheets("出席表").Select
Range("G8").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 3
MsgBox ""
Sheets("出席表").Select
Range("G9").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 4
MsgBox ""
Sheets("出席表").Select
Range("G10").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 5
MsgBox ""
Sheets("出席表").Select
Range("G11").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
  Case Else
MsgBox "IDが違います"
End Select
End Sub


これのどこに入れればよいでしょう。 ごめんなさいめんどくさい事させてしまって;;

よろしくお願いします。

補足日時:2007/12/01 09:34
    • good
    • 0

も・ちょっと説明いただけますでしょうか?



出席簿と言うからには何人もメンバーがいる訳ですよね..
入力用セルに0001と入れるとAさんの行の今日の日付の列に○が入る
入力用セルに0002と入れるとBさんの行の今日の日付の列に○が入る

みたいな感じでいいんでしょうかね?

この回答への補足

ご回答ありがとうございます。


InputBoxをSelectとして使った形です。
こんな感じですね↓

ten = InputBox("IDを入力してください")

Select Case ten

Case 1
MsgBox "=一覧表!G2"
Sheets("出席表").Select
Range("G7").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 2
MsgBox ""
Sheets("出席表").Select
Range("G8").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 3
MsgBox ""
Sheets("出席表").Select
Range("G9").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 4
MsgBox ""
Sheets("出席表").Select
Range("G10").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case 5
MsgBox ""
Sheets("出席表").Select
Range("G11").Select
ActiveCell.FormulaR1C1 = "○"
Sheets("ターミナル").Select
Case Else
MsgBox "IDが違います"
End Select
End Sub

ご返事お願いします。m(_ _)m

補足日時:2007/12/01 09:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!