No.1ベストアンサー
- 回答日時:
こんにちは!
画像がはっきり確認できないのですが、
「成績取込」Sheetにユーザーフォームを配置しているのでしょうか?
今回はユーザーフォームではなく、「成績取込」SheetのA1セルに「生徒番号」を入力してマクロを実行する方法にしてみました。
尚、「成績取込」SheetのA・B列は入力済みだとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub 抽出()
Dim i As Long, k As Long, endRow As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("成績データ")
Set wS2 = Worksheets("成績取込")
endRow = wS2.Cells(Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
Range(wS2.Cells(5, "C"), wS2.Cells(endRow, "E")).ClearContents
For k = 5 To wS2.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
If wS1.Cells(i, "C") = wS2.Range("A1") And wS1.Cells(i, "A") = wS2.Cells(k, "A") Then
With wS2.Cells(k, "C")
.Value = wS1.Cells(i, "C")
.Offset(, 1) = wS1.Cells(i, "D")
.Offset(, 2) = wS1.Cells(i, "E")
End With
End If
Next i
Next k
Application.ScreenUpdating = True
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
画像ではよく見えませんが,生徒番号を何かに記入させるようにしてるのですか。
とりあえずシート上に配置したアクティブXコントロールのテキストボックスに記入する事にします。
ユーザーフォームをわざわざ表示しているのでしたら,適切に応用して下さい。
手順:
テキストボックスのプロパティでリンクするセルをB2セルに設定する
C5セルには
=IF(COUNTIFS(成績シート!A:A,A5,成績シート!C:C,$B$2)=1,$B$2,"")
と記入,以下コピーしておく
D5セルには
=IF(C5="","",VLOOKUP(C5,成績シート!C:D,2,FALSE))
と記入,以下コピーしておく
E5セルには
=IF(C5="","",SUMIFS(成績シート!E:E,成績シート!A:A,A5,成績シート!C:C,C5))
と記入,以下コピーしておく
以上でB2セルにリンクさせた生徒番号により,所定の内容が現れます。マクロを使うまでもありません。
(ワークシート上,つまりB2セルに直接生徒番号を記入するように作成した方が,もっと簡単ですが)
>マクロ
以上の段取りをマクロで実現します
せっかくなのでテキストボックスのチェンジイベントで自動駆動してみます。
private sub TextBox1_Change()
if application.countif(worksheets("成績シート").range("C:C"), textbox1.value)>0 then
range("B2") = textbox1.value
range("C5:C17").formula = "=IF(COUNTIFS(成績シート!A:A,A5,成績シート!C:C,$B$2)=1,$B$2,"""")
range("D5:D17").formula = "=IF(C5="""","""",VLOOKUP(C5,成績シート!C:D,2,FALSE))"
range("E5:E17").formula = "=IF(C5="""","""",SUMIFS(成績シート!E:E,成績シート!A:A,A5,成績シート!C:C,C5))"
range("C5:E17").value = range("C5:E17").value
end if
end sub
テキストボックスに記入すると,自動反映します。
No.2
- 回答日時:
まるで、フィルターオプションを使ってみてくださいと
云わんばかりの質問ですね。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filte …
のサイトに説明があります。
最後の方にVBAのコードもありますし、マクロの記録で十分な形が得られます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 第二回模試の3科目の各得点と合 1 2023/04/25 18:02
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- 高校受験 身長187cmです。 公立中学校の成績についてです。 300人の学年で、定期テストは毎回トップ10に 1 2022/10/16 00:15
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- 中学校 中学校の先生:「生徒が成績だけ良ければ手段は何だって良い」 2 2022/06/08 21:05
- 中学校 「生徒が塾に行って勉強していて、生徒の成績が上がり、学校定期テスト結果が良くなれば、教員として都合良 1 2022/06/10 22:30
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- 高校受験 中3の生徒で成績に問題がなく(むしろ高い)本人も全日制高校に行きたがってるけど、どう考えても通信制高 3 2022/12/25 10:05
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
Outlook 電源OFFの受診の仕方
-
エクセルでXLOOKUP関数...
-
複数の写真を1枚に印刷
-
Microsoft Formsの「個人情報や...
-
「生産性ソフトウェア」とは何...
-
パソコン買い換え Office移行 ...
-
Excel テーブル内の空白行の削除
-
マクロ自動コピペ 貼り付ける場...
-
outlookのメールが固まってしま...
-
エクセルで英文字に入れた下線...
-
VBAで横データを縦データに変換...
-
Outlookを立ち上げたらGoogleロ...
-
マイクロソフト 一時使用コード...
-
teams設定教えて下さい。 ①ビデ...
-
会社のOutlookにてメールを予約...
-
Outlookで、任意のメールアドレ...
-
Excelで空白以外の値がある列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
マイクロソフト 一時使用コード...
-
ウィンドウィズ メモ帳で日付だ...
-
MicrosoftOfficeの1ユーザー2...
-
Microsoft Formsの「個人情報や...
-
Officeの字体
-
エクセルでXLOOKUP関数...
-
Microsoft365で自動保存が出来...
-
Outlookで、任意のメールアドレ...
-
outlookのメールが固まってしま...
-
Microsoft 365 の一般法人向け...
-
Office2021を別のPCにインスト...
-
Microsoft 365のディフェンダー...
-
Excelに貼ったリンクについて E...
-
MicrosoftOffice2019なんですが、
-
Outlook で宛先が複数の場合の人数
おすすめ情報