- ベストアンサー
EXCEL2000:上書きするVBAのコードを教えてください。
EXCEL2000のマクロを使用して以下のようなことをやりたいと考えています。 VBAに記載するコードを教えていただけますでしょうか。 ●シート構成 1.データシート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 D列:性別 2.入力シート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 ●やりたいこと 1.「入力シート」に識別コードをふり、データを入力しています。 2.そのデータとは別に、「データシート」にもデータを入力しています。 3.「データシート」に存在するデータに関しては、入力シート上のA列:識別コードと同じデータのB列:氏名とC列:年齢を、「入力シート」上のそれぞれの列に上書きします。 4.「データシート」に存在しないデータに関しては、「入力シート」上に存在するデータをそのまま残します。 マクロを作動させると、上記一連の作業が完了するようにできればと考えています。 まとめますと、「データシート」上にデータが存在すればそれを「入力シート」上に表示し、存在しなければ「入力シート」のデータをそのまま表示するというような仕組みにできればと考えています。 ご回答よろしくお願い致します。
- nihinihinihi
- お礼率66% (46/69)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> VBAのコードを教えてください こういう質問の仕方は、余り関心しませんね。 丸投げ ですもんね。 今後、VBAを習得するのであれば、まず自分で考え、うまく行かなかった部分を 質問するよう、お勧めします。 一応、入力後に、まとめて突合せを行なうのであれば、こんな感じです。 Sub test() Dim WS1 As Worksheet Dim WS2 As Worksheet Dim Rng As Range Dim FndRng As Range Set WS1 = Worksheets("データシート") Set WS2 = Worksheets("入力シート") For Each Rng In WS2.Range("A2", WS2.Range("A65536").End(xlUp)) If Not IsEmpty(Rng) Then Set FndRng = WS1.Range("A:A").Find(Rng.Value, lookat:=xlWhole) If Not FndRng Is Nothing Then Rng.Offset(, 1).Value = FndRng.Offset(, 1).Value Rng.Offset(, 2).Value = FndRng.Offset(, 2).Value End If End If Next Rng End Sub
その他の回答 (1)
- misatoanna
- ベストアンサー率58% (528/896)
データシートに存在しないデータとは、何を基準に判断するのですか? 1.識別コード 2.名前 3.祖貴別コードと名前の組み合わせ マクロはどの段階で実行されるのですか? 1.識別コードなど、判断用キーデータが入力された時点 2.すべて入力後 入力シートにあってデータシートにないデータは、データシートに転記するの ですか?
お礼
No.1の方がおっしゃる通り、漠然とした質問をしすぎてしまったようです。申し訳ありません。 またあらためて質問させていただきます。 ありがとうございました。
関連するQ&A
- excel2003 VBAマクロの作成
すいません、下記のような条件を満たすマクロのサンプルコードをお願いします。 ■前提条件 ・「検索元データ」はマクロ.xlsの中にある ・「検索先ファイル」は管理ファイル.xlsである ・マクロ.xlsファイルのA列にはデータがn個ある(セル範囲A2:A(n+1)まで) ・C:\one\two\three\管理ファイル.xls のフォルダ位置である(絶対パスで指定する) ・管理ファイルの中にはSheet1,Sheet2,Sheet3・・・・Sheet10の10コのシートがある ■マクロでしたいこと (1)A列のデータが管理ファイル(ブック内)に記載されているかチェックする (2)A列のデータをチェックしたら、下記の通りに列にチェック情報を記載する B列 データがいくつあったか(管理ファイルに記載されていない場合は0と表示) C列 データが記載されているシート名(B列が0の場合は0と表示) (3)次のデータへ (4) (1)-(3)をA列のデータがなくなるまで繰り返す (5)データがなくなったら終了(保存せず閉じない) 以上です。 よろしくお願いします。
- 締切済み
- 会計ソフト
- 【Excel】一致するデータの検索
Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excel関数
excelで作成した表のなかで a列には各コードが入力 b列は文字列 c列は数字 別にシートを作りコード順に 最小値と最大値、平均を求めたい b列に文字が入っていないデータを探して、別シートに入力したa列コードと一致するデータをc列から探し(複数データあります)その中で更に最小値と最大値、平均を求めたいのですが 関数が分かりません。 教えていただけば助かります。 よろしくお願いします。
- ベストアンサー
- その他(ビジネス・キャリア)
- Excel2000のVBAについて教えてください
はじめまして。 現在、以下のような表があるとき、コードCがブレイクするごとに、データBに対する絶対値の最大値を求めるVBAを作成しようと思っています。 また、求めた絶対値の最大値を持つデータを抽出して、各コードCに対する最大値のみのデータを別シートに貼り付けたいとも思っています。 同一コードC内に絶対値の最大値が複数存在することもあります。 データ件数は処理ごとに変更がありますので未定です。 なお、Microsoft Queryはインストールされていません。 以上の条件でどのようなコードを作成すれば良いのか教えていただければ幸いです。 例として下記のような表1のデータを、表2のように変更したいと考えています。 よろしくお願いいたします。 表1 コードA コードB コードC データA データB データC 48 01 22 -179.4 2.402 3.864 48 20 22 -248.3 4.102 3.826 49 06 22 0.1031 -2.02 3.986 49 07 22 -153.9 1.773 3.902 50 01 22 -179.4 2.402 3.872 50 07 22 -153.9 1.773 3.886 51 08 21 -6.386 0.069 2.622 51 09 21 -74.24 0.073 2.538 52 09 21 -74.24 0.073 2.522 52 12 21 -85.48 0.084 2.508 53 10 20 0.2928 2.427 5.986 53 11 20 -198.4 -1.14 5.903 54 11 20 -198.4 -1.14 5.886 54 13 20 -231.3 -1.73 5.872 55 12 21 -85.48 0.084 2.499 55 26 21 -115.8 0.114 2.462 56 13 20 -231.3 -1.73 5.864 56 22 20 -320.2 -3.32 5.826 表2 コードA コードB コードC データA データB データC 56 22 20 -320.2 -3.32 5.826←コードCが20のグループでデータBが絶対値の最大値を持つデータ 55 26 21 -115.8 0.114 2.462←コードCが21のグループでデータBが絶対値の最大値を持つデータ 48 20 22 -248.3 4.102 3.826←コードCが22のグループでデータBが絶対値の最大値を持つデータ
- 締切済み
- オフィス系ソフト
- 【Excel VBA】条件を満たすデータを順に抽出
Excel2003を使用しています。 CSVでExcelに取り込んだデータの中から、条件を満たすものを順に抽出して一覧表を作成するマクロを作りたいのですが。。。 ・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下 ・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下 に順に表示させたいのですが、うまくいきません。 以前、いただいた回答で参考になりそうなものを見てみたのですが、手順というか何かヒントのようなものをいただけたら、自分でどうにかできそうなので、質問させていただきました。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで別ブックを検索するマクロ、VBA
エクセルで以下の処理を行えるマクロを作成したいです。 当方、マクロについてほとんど知識がありません。 恐縮ですが、教えていただけると嬉しいです。 ・主にしたいこと [検索]ブックで一致するコードを探して、 [結果]ブックの対応するコードの行にそれぞれの項目を返したい。 ●ブック1 [検索] シートが12個あります(それぞれ、1、2、3…12というシート名=1~12月分) ↓各シートの内容 A B C D 1 氏名 数値 コード 内容 2 abc 111 SS1234 あいうえお 3 bcd 123 SS3456 かきくけこ ・ ・ ・ といった感じです。 12個のシートの中身はそれぞれ似たようなものですが、 「コード」や「内容」などは少しずつ違います。 ●ブック2 [結果] ↓シートの内容 A B C D 1 氏名 コード 内容 数値 2 SS3456 3 SS1234 ・ ・ ・ といった感じです。 (注)検索用ブックとは列の並びが異なっています。 ここでやりたいことの詳細ですが、 ・[結果]ブックの「コード」(B列)にコードを入力すると、 [検索]ブックで一致するコードを検索し、 A列「氏名」、C列「内容」、D列「数値」に、[検索]シートの内容を 自動的に表示させたい。 (ただし[結果]ブックに入力した「コード」は、[検索]ブックの1~12のうち、 どのシートにあるかわからない) ・入力したコードが見つからない場合は何も表示しない。 ということです。 最初VLOOKUP、MATCH等の関数で表示することを考えましたが、 シートが複数にまたがっているのと、 列の並び方が[検索][結果]ブックで違うのでわかりませんでした。 長くなってしまい申し訳ありませんが、どうかおしえてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL マクロ シート 比較
EXCEL マクロ でシート間のデーターをシート2を基本に比較してシート3へ結果を出す 新規・削除と表示する。 シート1 シート2 シート3 氏名 コード 氏名 コード 氏名 コード A列 B列 A B A B C 山川 1001 山川 1001 1002 谷 削除 谷 1002 空 1003 1005 海 新規 空 1003 海 1005 田 1006 田 1006 まことにお忙しいところよろしくお願いいたします。
- ベストアンサー
- SE・インフラ・Webエンジニア
- マクロ VBA入力
シート1 A B C 1 コード コード 金額 2 01 シート2 A B C D E 1 コード 名前 コード 名前 金額 2 01 あ 02 い 20 3 01 あ 03 う 30 シート1とシート2があります。シート1のA2に入力されたコードがシート2のA列に入力されていたら、その行のC列のコードをシート1のB2に反映し、E列の金額をシート1のC2に反映する。シート1のA2のコードは、シート2のA列に複数あるため、この作業を繰り返す。 シート1 A B C 1 コード コード 金額 2 01 02 20 3 01 03 30とできるようにするにはどうすればいいでしょうか?分かりにくい文章で申し訳ありません。関数では無理なのでVBAの入力しかないかと考えていますが、VBAは全くの初心者で困っています。どなたかご回答宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- EXCEL2003 重複データに色を付けるVBA
A列のA2からA21に氏名、B列のB2からB21に住所が入力済です。A列で重複しているデータに色をつけて、さらに並び替えをしたいと思います。色は黄色、並び替えの設定は黄色で色を付けたセルがA2から順に表示するVBAを教えていただけませんでしょうか。またお手数でも列をB列、C列に変更した場合についても教えていただけませんでしょうか。VBAコードの貼り付けはできます。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】ThisWorkbook モジュールのマクロ
Excel2003を使用しています。 39枚のシートから成るBook1のThisWorkbook モジュールに、C列に“○月計”と入力されたら、その行のE列、F列、G列へ数式を入力するコードを書いています。 現在は、それぞれのシート(39枚のシートのうち3枚を除く36枚)のC列最終行から2行下のセルへ“○月計”と手入力していますが、マクロで“○月計”と入力されるようにすれば、ThisWorkbook モジュールに書いているコードも実行されて、数式の入力までマクロで処理できるのかな?と思い、試しに、36枚それぞれシートのC列最終行から2行下のセルへ“○月計”と入力されるようコードを書いてみました。 …が、そうではないのか、それぞれのシートのC列最終行から2行下のセルへ“○月計”と入力されるものの、E列、F列、G列へ数式は入力されません。 せっかくなので、できることなら数式の入力までマクロで処理したいのですが、どのようにしたらThisWorkbook モジュールに書いているコードまで実行されるのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
おっしゃる通りでございます。 大変失礼いたしましたm(__)m ありがとうございました。