
XPにてexcel2007を使っています。
現在、順位表を作っているのですが、VBAというものの入門本を読んでみたのですが、いまいちやり方が分からないため質問させていただきます。
1つ目のシートに総合順位の表【シート名:順位表】を作りたいと思っています。
今、別のシート【シート名:第1回結果】に
1班
1.赤井 80ポイント
2.井上
3.上松 90ポイント
4.江藤 60ポイント
5.岡田
・
・
・
18.山根
2班
1.安藤 75ポイント
・
・
・
18.渡辺 70ポイント
と入力しています。3班あり、各班とも18人います。
名前が「あいうえお順」に並んでいて、参加者のみポイントが打ち込んであります。
やりたいことは、この別のシート【第1回結果】から参加した人(ポイントありの人)のみ
名前とポイントをコピーして【順位表】の表に貼り付けたいと思っています。
どうやったこのようにうまくいくのでしょうか?
自分が悩んでいるところは、
(1)今回の参加者(ポイントを記入してある人)のみを選択するところ。
(2)1班、2班、3班と参加人数がちがうのに、【順位表】のシートに隙間なく、貼り付けるところ。
あたりです。
また、こういったものを参考するのに適した本を紹介していただけないでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
別件で私は、他の人に似たような回答していますが、今回のようなものにも使えそうなので書き込みます。
以下の手順でやってみてください。
1、データをドラッグ
2、ホームの右端の「並べ替えとフィルタ」を選択
3、セルに出てきた漏斗?を選択
4、「空白のセル」のチェックを外す
5、このデータを再度ドラッグしてコピー
6、別シートに貼り付ける(その際、値だけを選択したほうがよいでしょう)
こうすると、今悩んでいらっしゃる(1)と(2)の両方が解決できるのではないでしょうか?
本に関してですが、私の場合は特に参考にしているようなものがなく、適当に使って行くうちに覚えました。
あまり、参考にならずにすいません。
(^^)
手順を真似して、マクロに保存していました。
少し応用したところ、思っていたことに近いことができました。
ありがとうございました。
No.3
- 回答日時:
こんにちは。
例題で回答しますのでコードを参考にやってみて下さい。
(例)
1.シート1のA列の1行目から14行目までa~nを入力します。
2.シート2のA列には適当にa~nを入力、B列に任意にポイントを数値で入力。
3.モジュールのコードに下記コードを貼り付け。
4.コードの実行。
Sub sample()
Dim Ws1 As Object, Ws2 As Object, LR1, LR2, Pa, Po
Set Ws1 = Worksheets(1)
Set Ws2 = Worksheets(2)
LR1 = Ws1.Range("a65536").End(xlUp).Row
LR2 = Ws2.Range("a65536").End(xlUp).Row
For i = 1 To LR2
Pa = Ws2.Cells(i, 1).Value
Po = Ws2.Cells(i, 2).Value
If Po > 0 Then
For j = 1 To LR1
If Ws1.Cells(j, 1).Value = Pa Then
Po = Po + Ws1.Cells(j, 2).Value
Ws1.Cells(j, 2).Value = Po
End If
Next
End If
Next
End Sub
上記コード(変数)説明
Ws1,Ws2はワークシートを何度も書くのが鬱陶しいので変数化、LR1,LR2は各シートの必要な最終行、Pa=人、Po=ポイント
For i~Nextルーチン
シート2のポイントの記述されているとこの値を取得(Po)し、0でなければ人の名前(Pa)を取り、シート1で同名を探し既存ポイントを取得し新規ポイントを足し記入。
これを変化させれば、質問者さんが意図するコードが書けると思います。頑張って下さい。
自分にはまだVBAは敷居が高いようなので、No.1・No.2のお二方のを参考にマクロで、記録して修正するやり方を今回は取らせていただきました。
もう少し複雑なのこともできるようになりたいと思いますので、今回書いていただいたコードは次回などに応用させていただきたいと思います。
ありがとうございました。
No.2
- 回答日時:
EXCEL2007は分かりません。
EXCEL2003であれば、オートフィルターを
使えばできますよ。おそらく2007にもあると
思いますが、インターフェースが異なるので
説明できません。
EXCEL2003であれば
エクセルのメニューで
「データ」→「フィルタ」→「オートフィルター」
として、ポイントの列の下三角マークをクリックして、
「空白以外のセル」を選ぶと、参加者のみ抽出できます。
あとは、別のシートにコピー&ペーストして、
並べ替えでしょうか?
VBAにしたければ、まずは手動で実現させて、
その後、記録マクロを行ってみて、
そのコードをベースにVBAを修正しては、
いかがでしょうか?
空白以外のセルを抽出するVBAを
今日、回答したので紹介します。
(記録マクロを修正しているだけです。)
http://oshiete1.goo.ne.jp/qa3331706.html
オートフィルターなどはヘルプを参考にしながらやってみました。
VBAに関してはなんとなくですが、無駄そうな処理を少し削ったり、
数値を変えたりしているうちにマクロで動きました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでセルの書式設定がで...
-
Excel内でのセル間のカーソル移...
-
ワークシートの行が途中から表...
-
エクセル 新しいシートを作る...
-
エクセルのワークシートの名前...
-
1から5までの整数のみ入力可に...
-
エクセルの下部のシートタブの...
-
EXCEL 同じセルに入力したデー...
-
Excel でシートをコピーしたい...
-
エクセルで他シートへ反映する方法
-
EXCELのシート名を自動参照
-
横並びの一定の連続セルを立て...
-
エクセルで別シートの同じ位置...
-
エクセルの編集について
-
エクセルで、数式を消させない方法
-
エクセルで多数のシートをまと...
-
シート全体を他のブックのシー...
-
Excelで行番号に応じての処理
-
エクセル 検索について
-
Excelにて、別シートからデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの下部のシートタブの...
-
エクセルで別シートの同じ位置...
-
ワークシートの行が途中から表...
-
エクセルでセルの書式設定がで...
-
シート全体を他のブックのシー...
-
EXCELでコピーしたグラフのデー...
-
Excelで保護のかかったシートの...
-
エクセルで数式は残したまま他...
-
excelで勝手にテキストボックス...
-
ロックしたセルのコピー&貼り付け
-
VBA アクティブでないシートの...
-
シート保護してても並び替えを...
-
Excelで大量の2000個のリストを...
-
行の挿入ができなくなった
-
Excelでハイパーリンク先の表示...
-
【エクセル】数式のセル番地を...
-
シート保護したExcelへの画像貼...
-
フィルタされたものを切り取り...
-
スプレッドシートが真っ白にな...
-
worksheetクラスのcopyメソッド...
おすすめ情報