
No.1ベストアンサー
- 回答日時:
こういう表をマクロで出すのが得意な人はいらっしゃると思います。
私は、あくまでも、長いブランクの練習用として書かせて頂きました。
本来は、ピボットテーブルなどで出せるような気がします。
>1行に各人数はあらかじめ決めておき、(この例では3名)
それはいいにしても、金山くんという文字が、なぜ、3行目から始まるのか分からないけれど、文章に内容からすると、左の表と、右側の書き出しとは、何も連動していないようですね。
'//
Sub Test1()
Dim r As Range
Dim r2 As Range
Dim c As Range
Dim objDic As Object
Dim a As Variant
Dim b As Variant
Dim d As Variant
Dim i As Long, j As Long, k As Long
Dim x As Long, y As Long, cnt As Long
Const ST As String = "D1" '書き出し位置(スタート=ST)
Const KT As Long = 3 '一行の横の書き出しセル数(略称は桁=KT)
'Dictionary オブジェクトを使う
Set objDic = CreateObject("Scripting.Dictionary")
Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp))
If r.Count < 2 Then Exit Sub 'データがない場合
Application.ScreenUpdating = False
For Each c In r
If c.Value <> "" Then
If Not objDic.Exists(c.Value) Then
objDic.Add c.Value, c.Offset(, 1).Value
Else
objDic.Item(c.Value) = objDic.Item(c.Value) & "," & c.Offset(, 1).Value
End If
End If
Next c
a = objDic.Items
b = objDic.Keys
j = objDic.Count
Set r2 = Range(ST)
Do
d = Split(a(k), ",")
'書き出し
Do
For x = 0 To KT - 1 '横に書き出しセル
r2.Offset(y, x).Value = d(cnt)
cnt = cnt + 1
If UBound(d) = cnt - 1 Then Exit Do
Next x
y = y + 1
Loop
If UBound(a) = k Then Exit Do
k = k + 1
y = y + 2
cnt = 0
Loop
Application.ScreenUpdating = True
Set objDic = Nothing
Set r = Nothing
End Sub
'//
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 野球 高校野球の話 1 2022/08/18 09:54
- 野球 世界一ですか 4 2022/11/11 06:17
- 野球 世界一ですか 2 2022/11/11 06:15
- 野球 WBC 1 2023/03/07 15:56
- 野球 澤村、金田、稲尾、杉浦、山田久江夏、斎藤雅、伊藤智、野茂、松坂、ダルビッシュ等、山本由等々数々の名投 2 2023/02/10 10:03
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- その他(芸能人・有名人) 今年の紅白歌合戦をおたずねします 1 2022/10/17 20:29
- 野球 野球 4 2023/02/17 16:43
- 野球 日本代表 これで世界一ですか 2 2022/11/11 05:59
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
エクセル 数字をすべて○などの...
-
セルの内容をテキストボックス...
-
エクセルでPDFリンクを大量...
-
Excel2007 色のカウント (VBA)
-
アポストロフィーの一括挿入 ...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
マクロを実行すると画像がズレ...
-
セルがクリックされた回数をカ...
-
未記入がある場合はマクロを実...
-
ページ内ハイパーリンクの表示...
-
エクセルVBA セルに表示された...
-
エクセル シート保護された共...
-
フォントの色を指定して削除出...
-
[EXCEL] フォント変更が正常に...
-
excelで、指定した時間来たら、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
Excelでセルをクリックす...
-
Excel ハイパーリンクのURLを別...
-
太字に設定されているセルの個...
-
マクロを実行すると画像がズレ...
-
セルの内容をテキストボックス...
-
フォントの色を指定して削除出...
-
Excel:セルの値(文字列)を数...
-
Excel2007 色のカウント (VBA)
-
エクセルでPDFリンクを大量...
-
アポストロフィーの一括挿入 ...
-
現在のセルの位置を返す関数は...
-
エクセルでセルをダブルクリッ...
-
空白セルを空セルに置き換える...
-
エクセル シート保護された共...
-
エクセル 未入力セルがあると...
おすすめ情報