
シート1には名前・ID・クラスなどが入力してあります。
シート2に簡単なクラス別の表を作成したいです。
クラス1 田中 佐藤 小松 遠山 青山
高橋 清水
クラス2 長井 鈴木 成田 横田
このような感じで1クラス5列で2段くらいで作成したいと考えています。クラスの人数はバラバラです。
クラス別に抽出する方法が知りたいです。また1→2に変更した場合に表のところでもクラス2に移動しているのが理想です。クラスの人数が増える場合もあるので抽出先のセルの指定している数式かコードも教えて頂けると大変助かります。
あまり詳しくないのでご教授お願いいたします。
No.3ベストアンサー
- 回答日時:
No.1さん、No.2さんのおっしゃる通りだと思います。
でも、面白そうなので作ってみました。ppiroさんのイメージと、ちょっと違いますが、お暇なら試してみて下さい。
【仕様】
クラス番号を入力(または変更)すると、その生徒を該当クラスの箇所にリアルタイムで移動します。
下記の準備を行った後、名前、ID、クラスを入力してください。
ちなみに、クラスを入力(変更)したタイミングで移動が発生しますので、先にクラスを入力すると中途半端な状態で移動させてしまいます。クラスは最後に入力しましょう!!
コピペ等で複数セルが一挙に変更された場合、最初の生徒のみが移動対象となります。2番目以降の生徒は、一人ずつ手でクラスを入力して、移動させる必要があります。
【準備】
Sheet1の1行目を見出しと、次のように入力します。(見出しなので、文字は適当でもOKです)
A1セル 名前
B1セル ID
C1セル クラス1 ※ここまでで、1クラス分です。このパターンで必要なだけ作成してください。
D1セル 名前
E1セル ID
F1セル クラス2
・
・
・
次に、Sheet1のコードモジュールに次のコードを張り付けます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRange As Variant
Dim Seito As Range
For Each Seito In Target
If Seito.Row <> 1 And _
Seito.Column Mod 3 = 0 Then
MyRange = Seito.Address()
Call MoveSeito(Seito)
Range(MyRange).Select
End If
Exit For
Next
End Sub
Public Sub MoveSeito(ByVal Target As Range)
Dim FromRange As Range
Dim ToRange As Range
Dim ClassColumn As Long
Dim I As Long
Cells.Interior.Pattern = xlNone
Set FromRange = Range(Target, Target.Offset(0, -2))
With FromRange.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ClassColumn = Target.Value * 3
For I = 2 To Cells(Cells(Rows.Count, ClassColumn).End(xlUp).Row, ClassColumn).Row + 1
If Cells(I, ClassColumn).Offset(0, -1) = "" Or _
Cells(I, ClassColumn).Offset(0, -1) > Target.Offset(0, -1) Then
Set ToRange = Cells(I, ClassColumn)
Set ToRange = Range(ToRange, ToRange.Offset(0, -2))
Exit For
End If
Next I
Application.EnableEvents = False
FromRange.Copy
ToRange.Insert Shift:=xlDown
FromRange.Delete Shift:=xlUp
Application.EnableEvents = True
End Sub
大量の、コピペを使うので私のやりたいこと違いましたが、コードをわざわざ作って頂いたことが嬉しかったのでベストアンサーに選ばせて頂きます。
No.2
- 回答日時:
>1クラス5列で2段くらいで作成したいと考えています。
>クラスの人数はバラバラです。
クラスの人数がバラバラなら、5列2段で収まらない時も起きうるのでは?
年に一度程度であれば、わざわざシステム化する必要もなく
並び替えとコピペで対応した方が早くないですか?
収まらないので、セルの抽出先で何処を、変えたらいいかも質問しています。
年に1度とは言ってませんし。表の並べ替えとコピペそれとデータの方も書き変えないといけないので。毎回100件位あるとどうしてもミスが出てしまうので1度の処理で出来るよう考えていました。

No.1
- 回答日時:
》 このような感じで…作成したいと考えています
「あまり詳しくない」とのことですが、貴方は何処までならお出来になるのでしょうか?
ひょっとして全く出来ないので、丸投げしているとか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
そんなにお金がなくても年に1度...
-
標準モジュールとクラスモジュ...
-
1 つのヘッダファイルに複数の...
-
複数のクラスで共通した関数を...
-
string formatについて
-
僕の出身中学校は200人同級生が...
-
[C++/CLI]可変個引数について
-
Eclipseでのクラス作成について
-
どこからも呼ばれていない無意...
-
Cstring(日本語含む)をcharに...
-
eclipeでクラス作成ができない
-
ページ遷移時にアコーディオン...
-
正規表現を使った小数入力チェ...
-
eclipseのパッケージって何?
-
Eclipseを入れたら、Swingは使...
-
packageとimport の違いって?
-
Class.forNameって?
-
同一パッケージにあるクラスが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
僕の出身中学校は200人同級生が...
-
今日は こどもの日 で、良い天...
-
どこからも呼ばれていない無意...
-
そんなにお金がなくても年に1度...
-
中学生です。 私は教室の黒板に...
-
恋愛
-
EclipseでJSPのコンパイルエラー
-
java eclipse 型に解決できません
-
共通で使う関数を集めたクラス...
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
-
配列の重複する値とその個数を...
-
「隣の芝生は青く見える」現象...
-
重複エラーを解決するには
-
UMLのクラス図はmain()も含むん...
-
複数のクラスで共通した関数を...
-
VBAもしくはVB6:クラスの中で...
-
命名規約は連番でいいのか?
-
eclipse でクラスに色
-
3年間同じクラスになる確率
おすすめ情報