シート間の行相違検証マクロ

このQ&Aのポイント
  • シート1とシート2の行の相違を検証するマクロの記述方法を教えてください。
  • シート1とシート2の氏名の並びが同一の場合とそうでない場合の両方をカバーする方法を教えてください。
  • シート1の氏名と数値を入力し、シート2に対応する数値を入力する方法を教えてください。
回答を見る
  • ベストアンサー

シート間の行相違検証マクロ

シート1のB列(B5:B38)に数10名の氏名を入力します。C列からM列までには数字を何個か入力します。例えば  A氏、C5には4、F5には2、M5には3、 B氏、E6には3、G6には4、 C氏、F7には4、H7には8、等です。 シート2の(A3:A36)にはシート1の氏名を入力します。B列からL列までにはシート1で入力した数字に対応した数字を入力します。例えば シート1、A氏、C5の4ではシート2、A氏の行のB列に2000、F5の2ではシート2のA氏の行のE列に1000、M5の3ではシート2のA氏の行のL列に1500、と入力します。ここで、シート2で入力した行が違っていないか。他の人の行に入力していないかの検証マクロの記述方を教えてください。尚、シート1とシート2の氏名の並びが同一の場合と、そうでないときの二通りを教えてください。よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

こんなの丸投げで、何か自分でやって見たのか。個々はVBAコードの下請けをさせるコーナーではないでしょう。 わからない点を聞くとかするもの。 参考にするなら、下記を読んで。コードは書かない。 (1)同じと(仮定している)場合 シート1(B列)とシート2(A列)の上からのセル同士を比較して、違っておればメッセージでも出せばよい。 比較するセルの行番号がシート1とシート2で2行違うだけ。 For NextとIF比較で出来ること。 シートが2つあるので各々を区別するためのコードを勉強のこと。 最終行はシート1では、Range(”B65536").End(xlup).Rowで判る。 ー 1行ずれるとあとずっと、ずれていく恐れがあるので、このロジックは十分でないが、これ以外は難しくて質問者のレベルのやり方に なら無い恐れがある。 ダブリを検出するのは別プロにすべきでしょう。又シート2のデータ漏れなども。 私ならシート1とシート2で氏名でマッチング方でチェックするが。1プログラムでダブリ、もれ、不突き合いが判る。 ーー 誤りを修正後、対応するシート1とシート2の各行について、シート1ではB列からL列、シート2では???(質問を理解できず) >A氏、C5の4ではシート2、A氏の行のB列に2000、F5の2ではシート2のA氏の行のE列に1000、M5の3ではシート2のA氏の行のL列に1500、と入力します の意味がわかりにくい。 対応した列どうして、同じデータが入るのではないのか。 ーーー (2)そうでないときの これは順次(行)比較は出来ない。シート1のB列氏名(上行から)からシート2のA列氏名を検索し、見つかった行でチェックを行う。 ダブリがあるとかだと、さらに難しい。質問者のレベルでは出来ないのでは。

hoshi7777
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

>シート2の(A3:A36)にはシート1の氏名を入力します。... 常に、シート1を元にシート2に入力するのですか? その場合、シート2には関数を入れておいて入力しないようにすれば良い? シート2のA3セルに =シート1!B5 と入れてA36セルまでコピー。 シート2のB3セルに =シート1!C5*500 と入れてB36セルまでコピー。 B3:B36セルを右方向に必要な分コピー。 質問文だけで解釈すると以上のような回答でも可ですかね?

hoshi7777
質問者

お礼

ありがとうございました。

関連するQ&A

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • エクセルマクロ:空白行を除いてコピー

    マクロで次の作業を処理したいのですが、どのようなコードを書けばよいのでしょうか?教えてください。よろしくお願いします。 ○sheet1 ☆左側 列B~Hをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 D列には固定の文字列が与えられており、E列はブランクで、D・Eともに非表示にしておきたい。 B10~B59には、固定で1~50の数字が順番に与えられている。 C10~C59、G10~G59、H10~H59には数値が、F10~F59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ☆右側 列J~Pをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 J10~J59には、固定で51~100の数字が順番に与えられている。 K10~K59、M10~M59、O10~O59、P10~P59には数値が、L10~L59、N10~N59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ○sheet2 sheet1のボタンをクリックし、sheet2を表示させ、 sheet1の値を次のようにsheet2に貼付けたい。 sheet2のB8~H107の範囲内で上から、sheet1の左側B10~H59と右側J10~P59の空白を含む行を除いた セット(列B~H、列J~P)のみをコピーし、左側と右側を連続して、値のみ貼付けたい。 ※C列とK列の空白を判定すれば良い ※並べ替えなどのために別シートを置きたくない ※非表示列の扱い方

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  d    E    F    G 1   456789 2  789456  3  789789 4  456789 5    : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のEFG列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  d    E    F    G 2   456789 3  789456  4  789789 5  456789 6    : 7   : ------------------------------------- ボタンをおしたら一致した製造番号のEFG列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5 1020 K 2  789456  5/2 500 D 3  789789   6/2 9000 F 4  456789   6/2 5000 S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  A    B    C    D 1 456789 2  789456  3  789789 4  456789 5 : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のBCD列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   456789 2  789456  3  789789 4  456789 5    : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のBCD列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • Excel,VBA シートの自動作成、データ

    Sheet 1 に住所録 Sheet 2~50までに同じフォーマットで A  B  C~E F~H No. 名前 S~L S~L と並んでいてA4から名前 C~の列には各数量が50行ほど入力されています。 Sheet 2~50 までを名前ごとにまとめたSheet を自動で作成したいです。 Sheet1とSheet2~50の名前順は同じです。 例 Sheet51 シート名 Aさん    DEF列    SML 1行目1,2,3(Sheet2AさんのC~E数量) 2行目2,2,2(Sheet2AさんのF~G数量) 3行目2,2,2(Sheet3AさんのC~E数量) 4行目4,4,4(Sheet3AさんのF~G数量) 同じようにSheet 53 Bさん となるようにループする方法をご教授ください。 よろしくお願い致します。

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

  • エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位

    エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位置に値を表示させたい シート2の A列に番号(連番) B列に商品名(数字とアルファベットの組み合わせ) C列に仕入先(数字4桁) D列にメーカー(数字4桁) E列に区分(数字とアルファベットの組み合わせで3ケタ) が入っていて約5,000行のデータが有ります。 シート1にレイアウトした表があって シート1のB4にシート2のA2の値(番号連番) シート1のB5にシート2のB2の値(商品名) シート1のB6にシート2のC2の値(仕入先) シート1のB7にシート2のD2の値(メーカー) シート1のB8にシート2のE2の値(区分) が表示されるようにしてあります。 マクロを利用して、作成したシート1のボタンを押すと シート1のセルB4の番号欄が1から2(シート2のA3の値)に繰り上がり、 シート1の表のA列の番号と同じ行のそれぞれの値を 上記の規則で表示させるようにできますか? シート1のB4が2になるとシート1の3行目をさしますので シート1の表には、 シート1のB4にシート2のA3の値(連番) シート1のB5にシート2のB3の値(商品名) シート1のB6にシート2のC3の値(仕入先) シート1のB7にシート2のD3の値(メーカー) シート1のB8にシート2のE3の値(区分) が表示されます。 シート1のボタンをクリックするごとにB4のセルは3,4,5,6と繰り上がり シート2のA列の番号と一致した行のそれぞれの値を表示させていく。

専門家に質問してみよう