現在小規模の英会話スクールをやっています。
生徒は40人に届くか届かないかです。
夏休みの予定を組み終わり、これを生徒に
伝えたいのですが、問題があります。
予定表(EXCELで作成)
月 火 水 木 金 土
A 青木 宮田 斉藤 田中 前田 青島
B 葛田 柴田 川田 吉田 小林 磯田
C 浅井 浅田 蔵前 細田 倉田 川本
D ・・・・
E ・・・
月 火 水 木 金 土
A 石川 豊田 三木 細田 石川 川本
B ・・・・
C ・・・
全40日分つづく・・・↓
一人、一人に40日分の個々の時間割をお知らせしたいのですが、数が多すぎて簡単に伝える方法ないでしょうか?
この表を生徒に見せてしまえば自分がいつ行けばいいのかわかるのですが、個人情報や好き嫌いの時間割の差が生徒に明らかになってしまいます。
一番よいのはVBAかマクロを走らせて、ひとり一人の時間割表が書かれた用紙がプリントアウトできればよいのですが、そんなことはできるでしょうか?
詳しく説明すると、
7/1 7/2 7/3 7/4 7/5 7/6
A 石川 豊田 三木 細田 石川 川本
B ・・・・
石川さんの個人時間割表を抽出
↓
(用紙)
石川 7/1 A、7/5 A、・・・
とうい具合で。
その用紙を石川さんに渡せば石川さんは何日に来ればよいか一目瞭然です。
別の方法でもよいのでよい方法を教えてください。
No.5ベストアンサー
- 回答日時:
例データ
2006/7/172006/7/182006/7/192006/7/202006/7/212006/7/22
月火水木金土
A青木宮田斉藤田中前田青島
B葛田柴田川田吉田小林磯田
C浅井浅田蔵前細田倉田川本
2006/7/242006/7/252006/7/262006/7/272006/7/282006/7/29
月火水木金土
A石川豊田三木細田石川川本
B青木柴田斉藤前田細田倉田
C柴田田中宮田小林倉田柴田
質問の例に対し、曜日行を、エクセルの正式日付に入力しなおし
する。B1セルに日付を入れて、+ハンドルで土曜までひっぱればよい。
次の行に1行挿入し直上日付をコピー貼り付けして、その行の書式を
ユーザー定義「aaa」に設定する。
A,B、CはVLOOKUP関数で具体的な時間帯にすることをお勧めする。
VBEの標準モジュールに
Sub test01()
k = 1
For i = 1 To 11
If IsDate(Cells(i, "B")) = True Then GoTo p01
For j = 2 To 7
For m = 1 To k
If Cells(i, j) = Cells(m, "j") Then GoTo p02
Next m
Cells(k, "J") = Cells(i, j)
k = k + 1
p02:
Next j
p01:
Next i
End Sub
を貼り付けて実行する。
するとJ列に、生徒の一覧がでる。
青木
宮田
斉藤
田中
前田
青島
葛田
柴田
川田
吉田
小林
磯田
浅井
浅田
蔵前
細田
倉田
川本
石川
豊田
三木
VBEの標準モジュールに
Sub test02()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
sh2.Cells.Clear 'Sheet2のクリア
'---
For m = 1 To 2 '各生徒名に対して繰り返し、テスト例として2名。本番では生徒数に変更要
sh2.Cells(1, "B") = sh1.Cells(m, "J") & "殿 スケジュール表"
'---Sheet1をSheet2にコピー
sh1.Range("A1:i100").Copy
Sheets("sheet2").Activate
sh2.Range("a2").Select
ActiveSheet.PasteSpecial
'----
For i = 2 To 12 '本番では最下行番号に変更要
If IsDate(sh2.Cells(i, "B")) = True Then GoTo p01
For j = 2 To 7 'B列からG列までに付いて
If sh2.Cells(i, j) <> sh1.Cells(m, "J") Then '指定した生徒でなければ
sh2.Cells(i, j) = "" '氏名を消す
End If
Next j
p01:
Next i
sh2.Range("A1:H13").PrintOut 'A1:H13を印刷、本番では変更要
Next m
End Sub
を貼り付け実行する。
結果例
宮田殿 スケジュール表
2006/7/172006/7/182006/7/192006/7/202006/7/212006/7/22
月火水木金土
A宮田
B
C
2006/7/242006/7/252006/7/262006/7/272006/7/282006/7/29
月火水木金土
A
B
C宮田
仕事でエクセルを使うなら、レポート用作表などを除き、VBAは必須というのが私の持論です。
No.4
- 回答日時:
日付 時間 生徒
7/1 A 石川
7/1 B ・・・
7/1 C ・・・
既に回答されていますが、縦一列のデータベースの方が融通が利きます。
これを2次元に展開するには、例えばDGET関数とデータテーブルを組み合わせればよろしいかと思います。
No.3
- 回答日時:
#02です。
もう一つ別の考え方です。以下のマクロは1つのシートに全時間割があるとき、選択したセルの値(例えば青木)と一致しないセルの文字色を白にしてしまうというものです。40人分繰り返せば、その生徒のみの名前が印字された予定表になります。
ただし日にちまで白色になっては困りますので「黒、自動選択以外の色に着色したセルは処理しない」仕様にしています。日にちなど消したくない部分は黒以外の適当な文字色にしておいて下さい。
Sub Macro1()
Dim cl As Range
For Each cl In Range(Cells(1, 1), Selection.SpecialCells(xlCellTypeLastCell))
With cl.Font
If cl = Selection.Cells(1, 1) Then
.ColorIndex = 1
Else
If .ColorIndex = 0 Or .ColorIndex = 1 Or .ColorIndex = -4105 Then
.ColorIndex = 2
End If
End If
End With
Next
End Sub
条件がもっとはっきりしているなら、その条件に合わせてマクロを修正して下さい。
No.2
- 回答日時:
二次元の時間割を一次元に変換すれば少しは楽になるでしょう。
A列 B列 C列 D列 E列 F列 G列
1行目 月 火 水 木 金 土
2行目 A 青木 宮田 斉藤 田中 前田 青島
3行目 B 葛田 柴田 川田 吉田 小林 磯田
4行目 C 浅井 浅田 蔵前 細田 倉田 川本
として、
I2: =OFFSET($B$2,INT((ROW()-2)/6),MOD(ROW()-2,6))
J2: =OFFSET($A$2,INT((ROW()-2)/6),0)
K2: =OFFSET($B$1,0,MOD(ROW()-2,6))
とそれぞれ入力して、その関数を下にコピーして下さい
そうすれば
青木A月
宮田A火
斉藤A水
田中A木
前田A金
青島A土
葛田B月
柴田B火
のように縦に展開できます。これを5週間分行ってコピー&ペーストすれば、全生徒の情報が縦に並びますから、あとはソートなりオートフィルタなりで加工して下さい。(曜日のところは日付にしておけばよいでしょう)
なお抽出~印刷を自動化しようと思えばやはりVBAでマクロを作成する必要がありますが、そこまではここでは説明し切れません。
No.1
- 回答日時:
これを簡単にやろうとするならばちょっと
VBAの知識が必要だと思われます。
逆に言えばVBAの知識があればそれ程難しいことではありません。
とはいえここで説明するには貴方のVBAに対する技術も不明ですので難しいですが・・・。
VBAの参考となるサイトは山ほどあります。
ご参考になさってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイント「スライドショ...
-
PowerPointでスライドマスタの...
-
PowerPointで、作成されたファ...
-
パワーポイントの表
-
PowerPointで、線を点滅した感...
-
パワポで4スライドで余白を少な...
-
mac版無料パワーポイントでエラー
-
卒論発表があります。5分ほどの...
-
パワーポイントMacBookにて、 ...
-
音声マークを一括非表示にしたい。
-
PowerPointのスライドの途中で...
-
【パワーポイントのフォントが...
-
Powerpointを用いた論文の発表...
-
パワーポイントでの印刷時の枠...
-
エクセルのマクロ設定について...
-
会社のMicrosoft365のライセン...
-
パワーポイント、円グラフの1...
-
アニメーションの設定を一括で...
-
Webでの画像印刷について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイント「スライドショ...
-
パワーポイントの表
-
音声マークを一括非表示にしたい。
-
【パワーポイントのフォントが...
-
PowerPointで、作成されたファ...
-
エクセル・パワーポイントなど...
-
PowerPointのアニメーションで...
-
Webでの画像印刷について
-
ExcelのグラフをPowerPointに貼...
-
パワーポイント2019 図の透...
-
PowerPointでスライドマスタの...
-
アニメーションの設定を一括で...
-
PowerPointVBAでスライドマスタ...
-
パワポで4スライドで余白を少な...
-
パワーポイントをプロンプター...
-
PowerPoint ブロックされたアッ...
-
office365パワーポイントでBING...
-
Vba 白黒印刷で網掛けが消える...
-
プレゼン時のポインター
おすすめ情報