エクセル・マクロを利用した進級処理

このQ&Aのポイント
  • officeXPを使用している場合、年度替わりに進級処理をする際にマクロを利用してシート「全校名簿」から3年生のデータを抽出し、値をクリアする方法について教えてください。
  • シート「全校名簿」には学級番号、学年、クラス、出席番号、氏名のデータが記載されています。毎年名簿上の人数が変動するため、抽出するデータの範囲も変わってきます。
  • どなたかエクセル・マクロの知識がある方、進級処理をスムーズに行う方法を教えていただけませんか?お願いします。
回答を見る
  • ベストアンサー

エクセル・マクロを利用した進級処理

officeXPを使用しています。 名簿を作成しているのですが、年度替わりに進級処理をしなくてはならないため、マクロを利用してシート「全校名簿」から、3年生のデータを抽出して値をクリアしたいと考えております。 ちなみにシート「全校名簿」の中身ですが、    A      B   C    D     E 1  学級番号 学年 クラス 出席番号 氏名 2  1101    1   1    1     ○○太郎 3  1102    1   1    2     ○△花子 ・ ・ ・ 335 3429    3   4    29    ××二郎 の様になっています。 毎年名簿上の人数は変動するので、マクロを利用するときにクリアする範囲は変わってきます。(人数が一定なら簡単にできるのですが) この抽出したデータをまとめてクリアする方法がわからないため行き詰まっています。どなたか教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

オートフィルタ方式ではない、ベタな方法ですが。 Sub 進級処理()   Dim i As Long   Dim lastRow As Long   lastRow = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row   If lastRow < 2 Then     Exit Sub   End If   For i = 2 To lastRow     If Cells(i, 4).Value = 3 Then       Cells(i, 1).Resize(, 17).ClearContents     End If   Next i End Sub D列(4列目)が学年の列で、A~Q列のデータを削除します。

untokodokkoisyo
質問者

お礼

ありがとうございます! ベタな方法とおっしゃいますが、まさにコレ!といった回答でとても助かりました。(^^ 時間をさいていただき感謝してます。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 データ最終行以降には何も入力されていないという前提で。 Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row で、最終データの行番号を取得出来ます。 これで、項目行(1行目)を除いて、2~上記最終行までループさせて、順にクリアして下さい。 ただし、データのクリアというのは行削除でしょうか? それなら、ループは必ず、 For i = 最終行 To 2 Step -1 のように後ろから廻して下さい。

untokodokkoisyo
質問者

補足

maruru01さん、早速の回答ありがとうございます。 さてデータのクリアですが、行削除でなく値と数式のクリアです。マクロの記述はあまり詳しくないので教えて頂いた 記述内容を、下記の命令のどこに組み込めばいいのかわかりません。 ちなみに一度試したものは、VBEを開くとこのように表示されていました。 Sub 進級処理()   Sheets("全校名簿").Select   ActiveSheet.Unprotect  Selection.AutoFilter  Selection.AutoFilter Field:=4, Criteria1:="3 "   Range("A317:Q513").Select   Selection.ClearContents  Selection.AutoFilter   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub です。

関連するQ&A

  • EXCELで進級処理をするには

    昨年の学校全体成績データ(+個人名簿)2004.csv と クラス替え・進級後の個人名簿 2005.csvがあります。 2004.csvを使って昨年の成績を2005.csvのデータに 移動することはできないのでしょうか? 例) 2004.csv 年,組,名前,点数1,点数2 1,1,山田太郎,4,3 1,2,山田花子,3,3 2005.csv 2,1,山田花子 2,2,山田太郎 ↓ 2,1,山田花子,3,3 2,2,山田太郎,4,3

  • エクセル・進級処理2

    エクセル2002を使用しています。VBA初心者です。 生徒名簿を作成中です。前回質問の内容 (下記URL参照) http://oshiete1.goo.ne.jp/kotaeru.php3?q=789215 に新たに追加する処理をしなければいけなくなりました。 追加の内容は (1)旧1年のデータを抽出し、学年・クラス・番号のそれぞれの列をクリアする。 (2)クリアした部分のうち学年の列のみ"2"の数字を入力する。 (3)旧2年のデータをそれぞれ抽出。・・・以下(1)と同様の処理を行う です。  このうち(1)については、前回質問した内容と同様なので、(2)についてわかる方がいましたら、教えてください。簡単なことなのかもしれませんが、よろしくお願いします。

  • エクセルのマクロについて。

    皆様、こんにちは。 以下のマクロを組みたいと考えておりますが、 浅学なこともありどのように組めばよいかわかりません。 皆様のお力をお借りしたくご教示いただけないでしょうか。 ■組みたいマクロ 【前提】 ・刻刻と変化するとある膨大なデータ(以下、元データ(1)とする)のなかから、10月1日時点について設定した条件に適合したものを抽出し、αシート(表の構成はA~C、1~10を使用、Aの欄には抽出された元データのデータ番号が入力されている)にまとめた。 ・その上で、全く別のデータ(以下、元データ(2)とする)から、元データのデータ番号に適合するそれぞれの数値をD~Eの欄に入力した。 ・後日、元データの中から、先ほどと同様の条件で抽出したところ、抽出されたデータの数(量)と数値に変更があった(そのため、抽出されたデータ番号の中には、αシートに含まれているもの、いないものが混在している。)これをαと同様にまとめたものをα’シートとする。 【組みたいマクロ】 ・αとα’シートを比較し、元データのデータ番号が一緒の列の、D~Eの欄についてはαシートの数値をα’シートに自動で転記されるようにマクロを組みたい。 ■まとめ このようなマクロの原型を教えていただけますと幸甚です。 また、今後、皆様のお手を煩わせないようエクセルにつき、深く勉強したいと考えておりますので、このようなマクロを組むために必要な本、おすすめな本も教えていただけないでしょうか。 おおざっぱな質問でわかりにくいかと存じます。 条件がもっと詳細に確定しないとマクロが作れないということがありましたら、その旨質問いただけますようお願い申し上げます。 何卒よろしくお願い致します。

  • エクセルのマクロについて教えて下さい。

    皆様よろしくお願いします。シート1に5桁の管理番号が不規則に並んでいます。およそ230個の管理番号があります。シート2には管理番号とデータが一覧表になっています。シート1の管理番号の下2行にシート2を参照する式(=sheet2!H3および=sheet2!W3)を手打ちで入れています。エクセルのマクロを使ってシート1の管理番号の下に値を入れるのではなく式を入れることはできますか。なお、シート1は横のセルが80、縦のセル150の中に管理番号が不規則に並んでいます。シート2にはB列に管理番号H・W列にデータが並んでいます。このようなファイルが80位ありますので手打ちではなくマクロで自動化を図りたいと思います。officeXPを使用しています。よろしくお願いします。

  • エクセル・フォームを利用して印刷範囲を指定したい

    OfficeXPを使用しています。 学校の名簿を作成しているのですが、トップページにするシートにユーザーフォームを置き、それを利用して指定したシートの指定したページのみを印刷したいと考えています。 ユーザーフォームは、 オプションボタンかリストボタンを利用して印刷したいシート・学年・クラスを選択し、 コマンドボタンをクリックすると印刷のウィンドウが現れ、 選択されたシートの指定した範囲がそのまま印刷できるといった状態にしておきたいと考えています。 補足ですが、各シートは学級名簿、徴収金名簿などいくつかの名簿があり、シート内は改ページプレビューで1組は1ページめ、2組は2ページめ・・・というように設定してあります。 マクロのことはさっぱりなので、困っています。上記の質問でわかりにくい場合は補足もしていきますので、どなたかわかる方教えて下さい。お願いします。

  • エクセルの検索・抽出マクロについて教えて下さい。

    急遽、会社のマクロ使用可のパソコン(ヴィスタ)で、 検索・抽出のデータ作業をすることになりました。 オートフィルタの貼り付けでは、時間がかかりすぎるということで、 職場の少ない知恵を出し合って考えていますが、なかなか上手くいかず、こちらにも お尋ねさせていただきます。 シート1に、3列(番号、文字、英字)の 『参照データ』があります。 シート2の 『検索する番号』 に番号を入れ、 『検索開始』ボタンを押すと、 シート1の『参照データ』から抽出されたデータが、 シート2に 『検索後のデータ』として表になって出てくるような関数(の場合はボタンなし)か、マクロをつくりたいのですが・・ 更には シート2の『検索する番号』を、番号ではなく 表の真ん中の列の『文字』でも検索できるように(番号でも文字でも、どちらでも検索できるように・・)は出来ないでしょうか・・・ ご回答を、心から お待ちしております! よろしく お願いします (u_u)

  • エクセルについて

    エクセルについて、 山田太郎  150 154 155 156 佐藤花子  151 153 158 高橋二郎  152 159 162 163 164 165    : (それぞれ別のセルに入力) というようなシート(1)の横書きのデータをもとにして、別のシート(2)の 150 151 152 153 154 : という縦書きの数列の横に、シート(1)の対応する名前 150 山田太郎 151 佐藤花子  152 高橋二郎 153 佐藤花子 154 山田太郎  : を表示させる方法をご教授願います。 実際のデータはシート(1)、シート(2)ともに膨大なデータのため、手作業の処理は 困難な状況です。 よろしくお願いいたします。m(_ _)m

  • エクセル:マクロでこんなことはできますか?

    【シート1】に名簿があります。 1 山田太郎 | ○○市○○町 | 電話 ・・・・ 2 山田花子 | ○△市  |・・・ といった一般的なものです。 【シート2】は、データ入力用としています。 A2~A4の3つを結合し、シート1から”山田太郎”を参照(INDIRECT関数使用) A5~A7の3つを結合し、同様に山田花子を参照 B2,B3.B4、C2,C3,C4は必要データを入力しています。 ★やりたいこと 【シート1】の山田太郎(1行すべて)を削除したときに、 【シート2】の2~4行に入っている山田太郎さんに関するシートを自動的に削除したい。 以上です、よろしくお願いします。

  • エクセル2000(マクロ)を使っていくつかの処理を一度にしたい・・・

    A列に下記の例のようなデータがあり、件数は毎日変わります。 マクロに登録したいのは (1)B列にはA列の最終行まで、(例えば)1、2と繰り返し入力させたい (2)B列に2のデータが入っているものだけを抽出し、抽出したA列のデータだけをコピーし、別のシートに貼り付けたい というところまでを一つのマクロで処理させたいのですが、うまくいきません。 A列のデータ数は必ず偶数で、数字のみで出てきています。貼付け先は日々のデータを月ごとに表にしていくため、毎日変わります。 ※土日祝日分はデータがでてきませんが、項目には記載がありますので、土日祝日は飛ばさなければいけないようになっています。 別シートは行の項目が日付で、列に抽出したデータを入れるようなレイアウトになっています。 A列   B列 1    1 1    2 2    1 0    2 10    1 2    2 13    1 2    2 ちなみに私が取得するデータはA列のデータだけなので、B列に入れるデータは1、2でなくてもなんでも大丈夫です。また処理や他にいい考え方等があれば教えてください。 宜しくお願いします。

  • エクセルの抽出に関するマクロ

    (1)OSはVistaです。 (2)エクセル2007を使用しています。 (3)シートは「会員情報」「抽出条件」「抽出結果」の3枚です。 (4)「会員情報」シートのA5からR588までデータ(氏名、住所、電話番号など)が入っています。A5からR5は、タイトル行(フィールド)です。R列は「フォームコントロール」で挿入したチェックボックスです。。 (5)「抽出条件」シートには、会員の種類による抽出ができるような条件(正会員、準会員、協賛会員など)が設定してあります。 (6)「抽出結果」シートには、抽出された結果がコピーされます。 「会員情報」シートのデータを、「抽出条件」シートで指定した条件で抽出し、「抽出結果」シートにコピーするマクロは成功しました。 チェックボックスにチェックを入れた会員を抽出し、その方たちの郵便用ラベルを作成するのが最終目標ですが、今は「会員情報」シートのチェックボックスを使った抽出とその結果のコピーができないところでストップしています。チェックボックスを使った抽出とその結果のコピーのマクロを教えてください。

専門家に質問してみよう