• 締切済み

VBA コードの削除に関する質問<お願いします!!> 

マイクロソフトアクセスで 以下のようなデータを VBAを用いて 自動で削除させたいんですけど コードが分かりません教えてください!! <やりたい事> ・同じ分類番号内で一番上に表示されている単語 以外すべて削除する 分類番号   単語     分類番号   単語 1      A         1       A 1      B         2       A 1      C    →    3       A 2      A 2      B 2      C 2      D 3      A 3      B 3      C 3      D 3      E 困ってます! お願いします!!

みんなの回答

  • Pakkun10
  • ベストアンサー率44% (22/50)
回答No.1

一番上というのは単語フィールドを昇順で並べてという条件でいいのでしょうか?データベースでは上のデータとか下のデータというものが存在しません。 ですから、一番上というのをちゃんと決めないといけません。 案としては、 SELECT 分類番号, Min(単語) AS 単語の最小 FROM テーブル GROUP BY 分類番号; のようなクエリを作成して、これを元に元のデータを削除していけばいいと思います。 レコードセットをまわしつつ削除していけばいいと思います。 ちなみに、学校の宿題じゃないですよね? http://oshiete1.goo.ne.jp/qa4508866.html も見るとなんとなくそう思ったので・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA コードの置換に関する質問<お願いします!!> 

    マイクロソフトアクセスで 以下のようなデータを VBAを用いて 自動で置換させたいんですけど コードが分かりません教えてください!! <やりたい事> ・同じ分類番号内で最頻出単語にすべて置き換える 分類番号 単語   分類番号 単語 1 イチゴ      1 イチゴ 1 イチゴ      1 イチゴ 2 りんご      2 りんご 2 りんご      2 りんご 2 りんご     2 りんご 2 アップル →  2 りんご 3 ブドウ   3 ブドウ 3 ブドウ   3 ブドウ 3 ブドウ   3 ブドウ 3 ぶどう → 3 ブドウ 3 ぶどう → 3 ブドウ 困ってます! お願いします!!

  • VBAのコードをお聞きしたいです。

    VBAのコードをお聞きしたいです。 いま、ある周期で角度をとっていて、グラフが傾いているものを周期毎に傾きを導出してグラフの基準を横一直線にしようとしています。A列に時間(A2から)が1~3000なんぼまでがはいっていて、B列に時間に対応する値(グラフが傾いている元のデータ)、C列に周期毎のデータ数、D列に周期毎の傾きが入力されています。 元データ(B列)の値に傾き(D列)と時間(A列)を掛けた値を引いていく、というのを周期のデータ数分(C列)繰り返す。1周期終わったらまた時間1から2周期目で同じように繰り返してというコードを教えてほしいです。 A B C D Time deg count slope 1 -0.41 475 -0.43 2 -0.82 169 -0.814 3 -1.23 198 -0.54 4 -1.49 190 -0.81 5 -1.9 201 -0.35 6 -2.31 189 -0.89 ~ ~ ~ ~ 3000 -1605.88 というようにExcelにあります。 具体的な計算を書くと (1)E2=B2-D2*A2 / E3=B3-$D$2*A3 / E4=B4-$D$2*A4 ・・これをcount分つまり475回繰り返す (2)E476=B476-$B$476-D3*A2 / E477=B477-$B$476-D3*A3 / E478=B478-$B$476-D3*A4 ・・これを169回繰り返す (3)E674=B674-$B$674-D4*A2 / E675=B675-$B$674-D4*A3 ・・ といったように1周期ごとにtimeを初期化してかけられるようにして、またcount数で区切りをいれるというようなことがでえきるコードを教えてほしいです。 わかりにくい部分があればご指摘ください。補足説明させていただきます。 よろしくお願いします。

  • vbaでシートより100より大きい値を削除するコードを教えてください

    vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

  • VBAについての質問です、お願いします。

    VBA初心者のものです。 Excelで毎日コピペが大変なので、VBAをネットで調べるもののまったく上手くいきません。 どうかシステムが得意な方、教えて頂けませんか? 要件は Bデータ.xlsとCデータ.xlsとDデータ.xlstとEデータ.xlsの各sheet1のA1からZ100セルの データをAデータ.xlsのsheet1に各データ順にコピー&ペーストしてならべたいのです。 イメージは、 Aデータのエクセルを開いて、マクロボタンを押す。 そうすると、各B・C・D・Eのエクセルが自動的に開いてそれぞれのsheet1のA1からZ100セル をコピーします。 各B・C・D・Eのエクセルが自動的に閉じます。 各B・C・D・Eのエクセルの各データが、 Aデータのsheet1に、すべてのデータが順にコピーされる手順です。 できれば、ファイルサーバーにエクセルを保存しているので、 その点も加味いただけると嬉しいです。 (初心者なので、マクロの構文を書いて頂ける場合に、ファイルとかシートを自分で 設定する場合があるときには、説明文を頂けると嬉しいです。) 以上、宜しくお願い致します。

  • 【エクセル・VBAコードの書き方】データの抽出

       1位   2位     3位     4位     5位 A   B        25 C              30            18 D E   11 VBAの初心者であります。 上のエクセルの表において、以下の作業を自動的に行なえるようなVBAのコードを教えて頂けると有り難く思います。 まず表の説明からしますと、 A~Eは人の名前を表しています。 1~5位は彼らの順位(ある競争)です。 数値が四つ(25、30、18、11)ありますが、 この四つの数値のなかで、20以上のものだけが、別のシートに自動的に入力されるようにしたいです。 かつ、その20以上の数値の位置(例えば25であれば、B、2位)もそのシートに入力されるようにしたいのです。 例えば別のシートでは以下のようにデータを表したいです。 名前    順位    数値  B     2位     25  C     3位     30 感覚的にはif 文とLoop文を用いると思うのですが、、うまくコードが組めません。 そもそもこれらの作業をVBA(マクロ)に組むことができますでしょうか。 宜しくお願いいたします。

  • エクセル VBAにて行削除をしたい…

    エクセル2003にて VBA初心者です。 A列1~100に101~200までに番号が振ってあります。 Z列に記入がない場合はその行を削除するVBAを教えてください。 例  A  B  C  D  E  F …… Z 1  101               文字有り 2  102               ブランク 3  103               ブランク 4  104               文字有り 5  105               文字有り … 99  199              文字有り 100  200              ブランク この様な場合2,3,100の行ごと削除をするという形式のものです。 また、この場合A列の番号も自動で変われば(104が102になる等)最高です。 詳しい方教えてください。よろしくお願いします。

  • VBAで色の付いているセルの行削除

    VBAで色の付いているセルの行を削除することは出来ないでしょうか? 量が多すぎて一つ一つ削除すのは大変で間違えて削除してしまいそうなので・・・ - 文字または数字 ■ 色の付いたセル(赤)  A B C D E F・・・ 1- - - - - - 2- - - - - - 3- - - ■ - - 4- - ■ - - - 5- - ■ - - - 6- - - - - - 7- - - ■ - - 8- - ■ - - - 9- - ■ - - - 10- - - - - -       ↓  A B C D E F・・・ 1- - - - - - 2- - - - - - 6- - - - - - 10- - - - - - よろしくお願いします。

  • エクセルでデータを蓄積するVBA

    蔵書管理用の一覧表です。 エクセルでデータ入力用のフォームは作ることができたのですがシートに転記するVBAをどのように書けばよいのか分かりません。 データは次々に増えていきます。 A列には番号を入力せずに自動的に番号が増えていくようにしたい。 3番まで入力済みのあとは、自動で「4」と番号が付与されて、下の行に転記されるようにしたい。 VBA初心者です。よろしくお願いします。 A    B      C          D 番号 分類     図書名      冊数 1   文庫本    日本の歴史   3 2   週刊誌    新潮        1 3   月刊誌    月刊ゴルフ    1

  • エクセルVBA及び関数

    初心者です。お教えお願いします エクセル2003です 空白行及び0をなくしたいのですが(C列を入力された時点で自動でE列のようにしたい) 関数の場合及びVBAのシートコードを両方教えていただけないでしょうか VBAのコードは勉強の為です Sheet1    A    B     C     D     E     F 16          文字A        文字A 17          文字B        文字B 18            0         文字C 19          文字C        文字D 20            0         文字E 21          文字D        文字F      22      23          文字E 24 25          文字F 文字はC16~C80まで入っております B16~E80までのセルのみで行いたいのですが 他の場所は関数やグラフ等がすでに入ってますのでいじりたくありません E16~をフォームのコンボボックスのリストにしようと思ってます よろしくお願いましす

  • エクセル VBA データ並び替えと行削除

    エクセル2003にて VBA初心者です。 以下のようなデータがあります。  列A    列B     列C  識別   部品番号  ユニット         A10000   *100         A10001   *101         A10002   *102  *     A10002   *103         A10003   *104  *     A10003   *105  *     A10003   *106  ・        ・      ・  ・        ・      ・  ・        ・      ・ 列Bには部品番号が、列Cにはユニット名が記入されています。 同じ部品番号でもユニットが異なる場合には、列Aに*が記入されています。 このようなデータが20,000行ほどあります。 上記のようなデータを以下のように並べ替えたいと考えております。  列A    列B      列C     列D     列E  識別   部品番号   ユニット   ユニット  ユニット        A10000    *100        A10001    *101        A10002    *102     *103        A10003    *104     *105     *106 VBAを利用すればできるんだろうなーと思っていますが、 見当もつきません。 どうぞよろしくお願いいたします。