• ベストアンサー

エクセルマクロについて教えて

マクロか関数かわかりませんがよく番号を入力すると(例)名前や商品名がでてきますがそれを作りたいのですがなかなかわかりません。マクロで自動記録でコピーして貼り付けでもいいかなと思い試したのですが貼り付けは列と行を指定しないと駄目?できませんでした。 アドバイスお願い致します。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

関数VLOOKUPを使います。 VLOOKUP(検索値,範囲,列番号,検索の型) 例えば下図の表の場合 検査値を入力するセルをD3とします。 セルE3に=VLOOKUP(D3,A:B,2,FALSE) 検査値 : D3 範囲は検査から表示したいもの(ここでは商品名)までを指定 A:B A3:B6でも可 列番号は表示したいものが範囲の中の何列目にあるかを指定 検索の型 TRUE を指定するか省略すると、検索値が見つからない場合に、 検索値未満で最も大きい値が返されます。 FALSE を指定すると、検索値と完全に一致する値だけが検索され、 見つからない場合はエラー値 #N/A が返されます。

hand555
質問者

お礼

表入りで回答ありがとうございました。早速試しました。無事完成することができました。

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

その他の回答 (2)

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

Googleで「エクセル VLOOKUP関数」で照会すると、沢山記事があり実例も載っている。じっくり読むこと。 VBAでVLOOKUP関数を使うことも出来るが、また他の方法もあるが、VBAのことを何も知らない状態で、ここへ質問しても 答えように困る。

hand555
質問者

お礼

いろいろ調べて悩みながら少しずつためしてみます。

全文を見る
すると、全ての回答が全文表示されます。
  • wret615
  • ベストアンサー率34% (133/386)
回答No.1

番号と名前とかの対応表を用意して、VLOOKUP関数とかを使うてみ?

hand555
質問者

お礼

早速試してみます。

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

関連するQ&A

  • EXCELのマクロにて

    EXCELのにて連続したデータを入力したデータベースがあります。(行が5000、列がAAまで) このデータベースのデータの最終行だけを指定して違うシートにコピー・貼り付けがしたいのです。 マクロにてこのような作業をするときにはどういった文をかけばよいですか。

  • エクセルのマクロ

    教えてください。   A     B   C 1 部品番号  ○   済印 2 111111   ○   済 3 222222   ○   済 4 333333   ○ という表があるとします。 B列にマクロのボタンを作っておき、 A列に部品番号を入力したら、マクロのボタンを押して、 C列に済、という字を表示したいのです。 1部品入力するごとに、その表示をさせたいです。 2行目、3行目・・・と一つずつマクロを登録して いく方法は、(マクロについては詳しくないので、マクロの記録、マクロの停止、という方法しかわかりません)入力するデータが100件以上あるため、それもどうかな・・と悩んでいます。超初心者なのですが、何とか完成したいと思っています。 よろしくお願い致します。

  • EXCELのマクロがわかりません・・・

    現在、A列にデータが並んでいるのですが、 これを7つ区切り(例:A1~A7、A15~A21)にして、 別シートに用意した表に行列を入れ替えて、 貼り付けるマクロを作っているのですが、 なにぶんVBは素人ですので、よくわかりません。 今作ろうとしているマクロは、 「元データ」セルのA1からA7までをコピーして、 「作成データ」セルのB2を起点として、 コピーした内容の行列入れ替えを行い貼り付け、 以後、「元データ」のコピー範囲を7つづつ 下にずらし、「作成データ」の貼り付け起点を 1つづつ下にずらして、「元データ」のA列の 最後までくりかえすものです。 必ず「Range」文で引っかかってしまうのですが、 何か構文的におかしいでしょうか? かなり急ぎですので、 わかる方、よろしくお願いしますっ!! 下に、作成したマクロを貼り付けます。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2005/12/5 ユーザー名 : *** Worksheets("元データ").Activate 開始行 = -6 終了行 = 0 ペースト行 = 0 Do 開始行 = 開始行 + 7 終了行 = 終了行 + 7 ペースト行 = ペースト行 + 1 開始セル番号 = "A" & 開始行 終了セル番号 = "A" & 終了行 ペーストセル番号 = "B" & ペースト行 Range("開始セル番号:終了セル番号").Select Selection.Copy Sheets("作成データ").Select Range(ペーストセル番号).Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Loop End Sub

  • EXCELの入力

    Excelの入力のことですが、行番号と列番号をそれぞれ別々 に入力したら、 その入力した行-列のところに指定の文字列or数値を 自動で入力されるような関数はないでしょうか。 教えてください。

  • エクセルでのオートフィルタに関して(マクロ)

    1行目にタイトルがある表がありましてその表に オートフィルタを掛けて条件を複数指定して検索・・・ここまで手作業。 その後マクロでヒットした行をコピーして別のシートにコピーしたり、ということを行っています。 もともとの表のデータ数は日々増減していて ほしい行の行数も毎回変わってきます。 検索した行をコピーするために選択すると Rows("2809:2809").Select こんな具合に 行番号で指定されるのでデータ数が増減すると うまくいきません。 検索条件を指定して検索した行を うまくマクロで指定することは出来るのでしょうか? 良い方法がありましたら御教授願います。 もう一点ですが 自動記録でオートフィルタの画面を開いたままでは「記録終了」できないですよね? マクロでフィルタ画面を開いて 検索条件を指定するところから手作業でするのは可能でしょうか? あわせてよろしくお願いします。

  • エクセル セル参照での自動計算(マクロ必須?)

    いろいろ調べたのですが、あまりにも欲張った作業を自動的にさせようと していますので私の力では限界があり、皆さんのお力をお借りして ヒントでも教えて頂ければと思い質問をさせて頂きます。     A       B        C   (伝票NO)  (金額)    合計金額 1  001850   600     2  001850   300 3  001850   1580     2480 4  001851   2100     2100 5  001852   80     6  001852   1260 7  001852   800 8  001852   1260 9  001852   1260    10 001852   945 11 001852   945      6550 12 001853   1050 13 001853   420 14 001853   1260     2730 15 001855   1575 16 001855   1600     3175 17 001854   1260      18 001854   945 19 001854   12600     20 001854   425      15230 上記のファイルで A列を参照し、A列が同じ値になっている行分のB列の合計をC列へ自動的に 表示させたいのですが、どのような関数やマクロを使えばよいのでしょうか? 例)  001850がA1~A3の行まであるので  同じ行数分のB列(B1~B3)の合計を  C列のC3に表示 ●A列は番号順に並んでいない     ※001855から001854に戻る場合もある ●A列の行は1行の場合もあれば、複数行の場合もある また、同じような形式でファイルがたくさんあり ファイルごとにA列番号が違い、またA列の行数も違います。 このような場合はマクロを使用することになるのでしょうか? IF関数ですと限界があり また、せっかく作った関数式が別ファイルには論理式や真偽のセル値の違いで エラーが表示されると思います。 たぶんマクロを使わないといけないと思うのですが 最終的な目標として、「ファイルを開く」→「マクロ実行?」→「C列に合計表示」という 作業を自動的におこないたいです。 欲を出せば、C列の合計が表示されている行以外は全て削除させたいです。  ※上記の例ですが、C1、C2、C5、C6などの行を削除  ※削除させるので「形式を選択して貼り付け」→「値を貼り付け」という作業も   マクロで行う必要があると思うのですが…。 何かヒントになるよな事でも構いませんので ご教授願います。

  • エクセル2010です。マクロ記述を教えてください。

    行番号1から12の任意のセルをコピーして貼り付ける場合ですが、 行番号13以降への貼り付けをしようとしても「制御されています。」というメッセージボックスが出て、しかも貼り付けが実行されない設定をしたいと思います。 また、 行番号13以降の任意のセルをコピーして貼り付ける場合も、 行番号1から12への貼り付けをしようとしても「制御されています。」というメッセージボックスが出て、しかも貼り付けが実行されない設定をしたいと思います。This Workbookにどんなマクロ記述をしたらよいですか? 教えてください。よろしくお願いします。

  • エクセルのマクロ

    A列にアルファベット、B列からE列まで数字が入力されている表があります。 A1から順に(A1→A2→A3→・・・)、A列の文字を調べてそれが"A"であった場合のみ、同じ行のB列からE列の最大値をF列に、最小値をG列にコピーする(A列の文字が"A"以外の場合は何もせず下の行を調べる)、ということを繰り返し、A列が空白になった時その作業を中止する、というマクロを作りたいのです。 もちろん、一つの表だけならA列で並べ替えをして関数を使えば簡単にできますが、表がたくさんあるので自動化したいと思います。 マクロに関してはまったくの初心者なので、お知恵をお借りできればうれしく思います。

  • エクセル:列の範囲選択をうまくできないでしょうか ?

    行数が約2000行ほどの表を毎月使用します。それでいろんな列をコピーして別の表に貼り付けたいのですが、列のコピーをする時に範囲指定でドラッグに結構時間がかかります。これをマクロでやりたいんですが、カーソルをおいた列の一番下の行まで範囲を指定すると言うのをマクロでできないでしょうか? 自動記録でマクロを造ろうとすると、実行した列を選択してしまい、任意の列の選択ができません。 よろしくおねがいします。

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

    エクセルで、データ(書類)のコピー貼り付けのマクロを組みました。 ツール→マクロで、新しいマクロの記録から、実際にコピーをして貼り付けをし、記録の終了をしました。 次に他のセルの場所でもそのマクロを実行して、何度も場所を変えてコピー貼り付けを実行したいのですが、操作用のボタンを作成して貼り付け、ボタンを押すと、同じ場所でコピー貼り付けを繰り返します。 たしか絶対参照とか相対参照とかあったような気がするのですが…。 どうすれば、他の場所でもボタンを押すだけでコピー貼り付けのマクロを実行できるようになりますか? よろしくお願いします。

専門家に質問してみよう