
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
マイクロソフト オフィスのサポ...
-
エクセル 日付順に並べてかえた...
-
エクセル 同じ数字を他の列に自...
-
Teams内でショートカットって貼...
-
outlookのメールが固まってしま...
-
エクセルで質問です。 ハイパー...
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
パソコンWindows11 Office2021...
-
大学のレポート A4で1枚レポー...
-
【Excel VBA】PDFを作成して,...
-
別シートの年間行事表をカレン...
-
Officeを開くたびの「再起動メ...
-
会社のOutlookにてメールを予約...
-
Excel 日付を比較したら、同じ...
-
マクロ自動コピペ 貼り付ける場...
-
Excelのセルの重複チェックが出...
-
エクセルで特定のセルの値を別...
-
Excelで〇のついたものを抽出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
Office2021を別のPCにインスト...
-
エクセル 同じ数字を他の列に自...
-
エクセルからメールを作れるか...
-
Microsoft365、ページ設定がで...
-
快活CLUBについて 私用で使う書...
-
パソコンWindows11 Office2021...
-
libreoffice calcで行を挿入し...
-
エクセルで質問です。 ハイパー...
-
outlookのメールが固まってしま...
-
Microsoft Formsの「個人情報や...
-
別シートの年間行事表をカレン...
-
Microsoft Formsでクイズの解答...
-
マクロ自動コピペ 貼り付ける場...
-
Excelで〇のついたものを抽出し...
-
Excel 日付を比較したら、同じ...
-
エクセルで特定のセルの値を別...
-
Officeを開くたびの「再起動メ...
-
office2019 のoutlookは2025年1...
おすすめ情報