• 締切済み

Excel VBAについて

Sheet1の第1列の値を条件に、 Sheet2の別表から値をコピーしてきて、 Sheet1の第2列に貼り付けるにはどのようなコマンドを書けばよろしいでしょうか. 概要お願いします.

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

WorksheetFunction.VLookup を使います。 添付の図の場合こんな感じです。 Worksheets("Sheet1").Range("B1").Value = WorksheetFunction.VLookup(Worksheets("Sheet1").Range("A1"), Worksheets("Sheet2").Range("A1:B3"), 2, False)

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

関連するQ&A

  • このようなVBAを作りたいのですが

    以下のようなデータがあります。 各セルの値は1~100までのランダムな値が入っています。 使用している列はAからFまでです。 例示すると、 A列 B列 C列 D列 E列 F列 1    24   75    69    34    2 55   66   47   28   92   53 13   21   63    32   47   61 44    3    17   81   49   36 以下続く ような形です。 そして、A列に1が200回出てきたら、そこまでのデータを(AからF列まで全てのデータ) を新たなシート1にコピーしたいのです。 この作業を繰り返したいのです。 次回 A列に1が400回出たところまでのデータを新たなシート2にコピー。 次々回 A列に1が600回 出たところまでのデータを新たなシート3にコピー。 {続く} 最終回 1が200の倍数丁度あるとは限らないので、空白になったら、そこまでのデータを新たなシートXにコピー。 といった感じです。 A列に1が何回出てくるかを基準に、データを分割するのが目的です。 言葉不足なので簡易化した例を挙げると、 1が2回出たら…という条件だとします。 A列 →新シート1のA列  新シート2のA列  新シート3のA列  2      2          6           2 1      1          7           1 3      3          1 1      1          8  6                 5 7                 1 1 8 5 1 2 1 のようにデータを分割したいのです。 普段、マクロを使ってデータから数値を取ることはするのですが、ある一定の範囲を新たなシートにコピーといった作業はしたことがないので、どのようなVBAを書けばいいのか見当がつきません。 分かる方、お手数をおかけして申し訳ないのですが、よろしくお願いします。

  • エクセルVBAで繰り返し条件について

    詳しい方どなたか教えてください。 VBAを書いているのですが、繰り返し条件で上手くいかず困っています。 For Each ~ Next を使って繰り返し処理を行っています。 あるブックに指定した名前のシートがあれば、そのシート内の内容を全てクリアして、 コピー元のシートの内容をコピーして値で貼り付けるようにしたいと思っています。 (ここまでは何となく上手くいってそうです) ただし、該当するシートがない場合は、 該当するシート名のシートを追加し、コピー元のシートの内容を値で貼り付けるようにしたいのですが、上手くいきません。 「ただし~」以降の内容をどのように書いたら良いか分からず困っております。 繰り返しの条件を満たさない場合(?)の処理の仕方を教えて頂けませんでしょうか。 宜しくお願い致します。

  • エクセルVBAの入力について

    "Sheet1"のA1、C1、F1、G1の値(計算結果のみ)すべてコピーして、 貼り付ける場所が"Sheet2"のA1:Z10の範囲内で、 A1はB列、C1はG列、F1はH列、G1はZ列の空白セルに上詰めで貼り付ける。 なおF、G、H、Z列以外の列には値が入力されていたり空白もあります。 また同時に、 "Sheet1"のA1、C1、F1、G1の値(計算結果のみ)の内でA1とF1のみコピーして、 貼り付ける場所が"Sheet3"のC1:Y10の範囲とC13:Y23範囲内で、 A1はC列、F1はY列の空白セルに上詰めで貼り付ける。 なおC、Y列以外の列には値が入力されていたり空白もあります。 またC11:Y12の範囲内にはすべて値が入力されています。 よろしくお願いします。

  • VBAのコマンドボタンについて

    エクセルVBAのコマンドボタンをシートに配置してあるのですが、セルの操作(他シートからのコピペ)によってそれの大きさが変わらないようにしたいです。 コマンドボタンのオプションで、『セルに合わせて移動やサイズ変更をしない』にチェックをいれてあるのですが、他のシートからコピペした際にコマンドボタンの位置とサイズが変わってしまいます。 コピーする元のシートのセルサイズに引きずられて、大きさが変わってしまいます(値だけコピーにすれば大丈夫)。 元に戻すボタンを押してもコマンドボタンの大きさは元に戻ってくれないので困っています。 シートの保護で行と列の大きさを保つように保護することも試みたのですが、それだとコピペができなくなってしまいました。 コピペした際に コマンドボタンの大きさと位置が変わらなければどんな方法でも大丈夫です。 (1)コマンドボタンの設定のミス?なので設定を変更する (2)常時、「形式を選択して貼り付ける」の際に"値のみ"しか選べないようにする(もしくは単に「貼り付け」した時に値だけ貼り付けるように設定する)、 (3)行と列の高さ・幅の変更を禁止したままコピペ等が出来るようにする ・・・などなど 詳しい方よろしくお願いします。

  • Excel vba の書き方教えてください。

    書き方が分からないのでおしえてください。 やりたい動作は下記になります。 データは Sheet1のA列にIPアドレスだけ書いてあります。 Sheet2のA列にはIPアドレス(例 111.111.111.*) B列には名前(例 honsya) Sheet3のA1にはAAAAA、 A2にはBBBBB が書いてあるシートがあります。 (1)処理が完了したデータを記入するシート(シート名:完了)を作成。 (2) Sheet1のIPアドレスを第3オクテッド目までの値が同じものをSheet2のA列から探します。 (3)探し出したA列の値の右よこのB列の値を作成した完了のシートに書きだします。 その際 Sheet3に記載されているデータと検索対象のIPアドレスをB列の値にくっつけます。 ↓こんな感じに AAAAA "[B列の値]([検索対象のIPの第4オクテッド])" [検索対象のIPアドレス] BBBBB この状態のものが 完了 のシートに書きだされるようにしたいのです。 ここ数日これで悩んでて解決しないのでどなたか助けてください。

  • EXCEL VBAにて

    A1~A20にシート名になる値が入力されており、各行は他のデータが入力されています。 コマンドボタンをつくり、シート名と同じシートにデータをコピーする ボタンを作ろうとしています。 ただし、入力されているシート名が存在しないシート名だった場合 新たにそのシート名でシートを作成したいのですが、 何か方法はありますでしょうか? お手数ですがご存知の方がいらっしゃいましたら、ご教授願います。

  • Excel VBA

    Sheet1は個票データで、 第一列にid番号、第二・三・四列にそれぞれの属性の種類が(数値で)入っているとします。 (例 id 性別 年齢 身長) Sheet2には、 第一・二・三列にSheet1の第二~三列に対応する属性の種類が辞書的順番に網羅されていて、 第四列に、第一~三列に対応する値が入っているとします。 (例 性別 年齢 身長 体重) このときSheet1の第五列に、Sheet2の第四列から対応する値を貼り付けるには、 どのようなプログラムを書けばよろしいでしょうか。 よろしくお願いします。

  • VBAの

    VBAで特定の列で文字マッチングをして、ヒットした行をシートAからシートBにコピーしたいと考えています。 単にセルの値を全コピーするだけなら可能です。しかし、このときにシートAが何行、何列あるか分からない場合、可変長なシートAを特定の列で文字マッチングをして、シートBにコピーするためにはどのようにすればよいのでしょうか?

  • EXCELのデータベース利用について(VBA)

    VBA初心者の者です。 下記の様なEXCELファイルを作りたいのですが、どのようにすれば良いのか まったくわかりません。 ACCESSでの構築が簡単なのかもしれませんが、データ量がそれほど多くないことと 職場にACCESSがないため、可能であればEXCELで構築したいと考えています。 私自身、プログラムの知識がなく、EXCEL VBAのサイトを確認するのですが、いまいち どうすれば良いのかわかりません。 ぜひご教授の程よろしくお願いします。 3つのシートの構成は以下になります。 【入力シート】 A1セルに文字列(A~Z)入力欄 【○○データシート】 A列に A~Z の文字列 B列に 001~100までの数値 C列に 001~100までの数値 D列に 001~100までの数値 E列に 001~100までの数値 例)    A列   B列   C列   D列   E列 1   A   001 2   B   001    002    003   004 3   C   003 4   D   002    003 【▽コマンドシート】 A列に 001~100までの一意の数字 B列に 文字列(コマンド) C列に 文字列(コマンド詳細) 例)    A列    B列    C列 1   001   xx     blank 2   002   xxx△   xxx 3   003   xxxx    x○ 4   004   xxxxx   xxx 【欲しいVBA】 1、入力シートのA1セルに○○データシートのA列に該当するA~Zの 文字列を入力。 2、○○データシートのB列~F列までの数値を参照 3、2の数値において▽コマンドシートのA列に記載ある番号と紐づけを行い、 ▽コマンドシートのB列、C列に記載がある文字列を入力シートのB列、C列にコピー ※コピー時は▽コマンドシートの書式や体裁情報も含めてコピー。 例としては以下になります。 入力シートの A1セルにDを入力した場合は 入力シート    A列    B列    C列 1   D    xxx△  xxx 2        xxxx    x○ 3 以上、ご教授よろしくお願いします。

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

外国人の死亡や虐めは日本の恥
このQ&Aのポイント
  • 日本で働いている外国人の死亡や虐めが最近ニュースで目立ちます。
  • 安い賃金で借金を返しながら働いている。これは日本国民の「おもてなし」に反して日本国民のイメージの悪さを他国に抱かせている。
  • 日本が窮地に立ったとき、日本のイメージが悪いと、自分の国の外国人の扱いを、悪くされた国は助けてくれません。政治的外交にも影響するかもしれません。
回答を見る

専門家に質問してみよう