• 締切済み

マクロの組み方

初めまして。Excel2003のマクロについて質問です。売上のデータベースがあって、各データには製品コードが付されています。コードのままだと直感的にどの製品か分かりづらいので、例えば”100”というコードは”A製品””200”というコードは”B製品”というようにマクロにより自動的にデータベースを変換、若しくは列に”製品名”を自動で追加するようなことが行いたいのですが、全くの初心者であるためどうやればよいか分かりません。 どなたかプログラムの方法を教えていただけないでしょうか?

みんなの回答

回答No.2

この程度のことであれば、マクロを使わずに関数で十分事足りると思います。 製品コードと製品名の対比表がsheet1にあるとします。そしてA列に製品コード、B列に製品名とします。 MATCH関数でどの行にあるかを調べ、次にその行のどの列かを指定します。 調べる製品コードが A1 にあり H1 に製品名を表示する場合 H1に =INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)) と書けばよいはずです。

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

コードを入力して隣のセルに製品名を出したいのでしたら マクロを使わず関数で以下のようにして実現できます。 [入力]シート A1セル:製品コードを入力 B1セル:=INDEX(製品コード!B:B,MATCH(入力!A1,製品コード!A:A,0)) [製品コード]シート A  B 100 A製品 200 B製品 300 C製品 400 D製品 これでA1に製品コードを入力すると 対応した製品名がB1に表示されます。 なお、LOOKUP関数でも同様のことができますが 動作に不安定な部分があるため今回はMATCHとINDEXを使用しました。

UNION-TARO
質問者

お礼

saintandreさん> 早速のご回答ありがとうございます。 こちらであれば私でも分かり、助かりました。 ちなみに製品コードはダウンロードされており、(既に入力されている状態)そこから製品名を表示させることも可能でしょうか? ↓この状態です。 A(製品コード)B(製品名)C(売上高) 100              ¥100   200              ¥150  300              ¥200 400              ¥250 お手数ですがお分かりになればご教示下さい。 宜しくお願い致します。

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

関連するQ&A

  • マクロが止まってしまいます. (マクロ初心者です)

    ある2列のデータを選択して(例えばA1からB10まで) グラフウィザードを選択して散布図のグラフを作成する. 上記のようなマクロを作成したのですが, 作ったエクセルのファイル上ではちゃんと動いてくれるのですが 別のファイルで使うと 「実行エラー9 インデックスが有効範囲にありません」 と警告がでて途中で止まってしまいます. マクロ初心者でプログラムもわからないです. 保存先がよくないのでしょうか? それとも,もともとこのような作業(マクロを別のファイルで使用) はできないものなのでしょうか? よろしくお願いします. windows98 Excel2000

  • 【Excel】マクロで印刷範囲の設定

    Excel2003を使用しています。 マクロで印刷範囲を設定するコードを書きました。ページを追加するマクロを実行したときに一緒に実行するようにしているのですが、コードで指定している範囲外にデータがあるせいか、その列まで印刷範囲に設定されてしまいます。このデータは印刷範囲には入れたくないのですが、どうしたらいいでしょうか? ちなみに、印刷範囲部分のコードは  .PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 24)) Y1セルとZ1セルにデータが入力されています。マクロを実行すると、印刷範囲がA1:Zjに設定されます。印刷範囲はX列までに設定したいのですが、可能でしょうか?よろしくお願いします。

  • エクセル2000マクロについて

    シートにデータベースの表を作っています。 このデータベースを元にピボットで5つの作られたシートがあります。 データーベースのシートの中のデータが更新されたら、自動的に 5つの作られたシートもデータを自動更新したいマクロを作る場合は どうすればいいのか教えてください。 5つのシートをそれぞれ選んでピボットのデータ更新ボタンを押さないと 5つのシートのデータが更新されない。 これをマクロで自動で5つのシートのデータを更新したい。 よろしくお願いします。

  • Excel2000マクロ

    お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?

  • Excelでキーワード検索後にその同行別列に移動するマクロ(VBA)

    エクセル(Excel2002)のシート内に商品コード、商品名、製造年月日、・・・出荷日と並んだレコードが2千件程あるデータベースがあるとします。 そのデータベース内のA列の「商品コード」を検索して、該当データのX列の「出荷日」にデータを入力するという作業を、 Ctrl+Fの検索ダイアログで該当商品コードを入力しEnter→該当するA列の商品コードにヒットする→Escキーでダイアログを消す→マウスで同行の「出荷日」X列をクリック→出荷日を入力 という行程で作業しています。 それを、マクロを実行すると検索ダイアログBOXが表示され→検索値(商品コード)を入力してEnter→該当データがある場合は、検索ダイアログBOXが自動的に消え、そのレコードのX列(出荷日)がアクティブになり出荷日が入力できる状態になる。 該当商品コードがない場合は”ありません”というメッセージを出す。 としたいと思っております。 検索&入力しなくてはいけないデータは数百件あり、少しでも効率よく作業できないかと悩んでおります。 VBAはまだまだ勉強中で、こちらのサイトでみなさんが解答されているものを引用する程度しか出来ない初心者ですが、宜しければ具体的な構文を教えて下さい。 宜しくお願いします。

  • エクセル マクロ

    マクロで自動入力していますが、データーを追加したい時に入力したいのですが出来ますか? 例)ボタン入力でsheet2に入力出来る仕組みになっています。例えばD列以降にデータを追加入力させる場合どうすればいいですか?ちなみにA列は自動番号ですので番号を入力したら、その番号のD列から入力出来るようにしたいです。記述をお願いします。(追加フォームボタンをクリックしたらフォームが出てきて、入力ボタンでそのような入力がしたいです) A  B  C 10 年数 良い  : : :

  • Access、マクロの最後に最適化を入れられる?

    Access2003を使用しています。 マクロの最後に最適化を組み込むことは可能でしょうか? マクロの内容は、 1、昨日のデータ抽出に使用した作業用テーブル内のデータを削除する 2、本日のデータをインポートしてくる 3、1で空にしたテーブルに、2のデータを追加クエリで流し込む 4、2でインポートしてきたデータ(テーブル)を削除する です。 この後、「5、データベースを最適化する」を入れてマクロを終わらせたいのです。 インポートしてくるテーブルは8個あり、1テーブルに20万を超すデータが入っているため、インポート、追加をやっているうちに、データベースの大きさが1,126,528KBにもなってしまいます。 この後、この大容量のテーブルを使って、大容量のテーブルを作成しているうちに・・・・データベースは更に大きくなってしまい困っています。 マクロの最後に「ここで一旦最適化」を入れられないでしょうか? このデータベースを使用するのは自分で使用するものでないため、「マクロ終了後ツールボタンで最適化する」ということが出来ません。 また、VBAはわからないので・・・出来ればマクロなどで対応できると助かります。 どなたか詳しい方、教えてください!

  • マクロの書き方(3項目)

    ・MsgBoxを使用して、画面上のダイアログボックスに1~50までの数字を 順番に表示するプログラムを作成するマクロ ・セル上にダミー登録した「名前」「郵便番号」「住所」「電話番号」のデータを、 表示及び修正できるプログラムを作成するマクロ ・上記で作成したプログラムに検索機能を追加するマクロ この3点のマクロを教えてください いろいろ検索しても判りません。 Microsoft Excel2003でのVisual Basicです。 早急にお返事ください。

  • マクロについて質問です

    マクロについてですが初心者で調べても希望している感じの記事が見つからないので質問させてもらいます。 したい事は例えですが、まずB1の見出し以下にデータがあるかを調べ、データがあればその一番上のデータをA1に切り取って貼り付けるといった感じの作業をB列のデータが無くなるまで繰り返し行うといった感じです。 今はA1に貼り付けてから印刷までの作業のマクロは出来ており、B列に入るデータは多くても10個以内ですので、マクロの記録でB2をA1へ切り取り貼り付けB3~B12を切り取りB2へ貼り付けるマクロを作って自動化したのですが、B列のデータ数の数だけ実行しなければならないのを一回の実行で出来ないものかと思い書き込みさせてもらいました。 分かり難いかもしれませんが何かヒントなど頂ければと思います。 宜しくお願い致します。

  • エクセルのマクロの組み方に詳しい方

    エクセルのマクロの組み方に詳しい方はいらっしゃいませんか? 今、売り上げの記入を自動化できるようにマクロを組もうと試みています。 しかし、マクロの本を見てもちんぷんかんぷんです 。 頭の中で考えていることですが… まずデータベースとしてエクセル、またはそれに代用できるファイルに手入力で仕入れの詳細を記入していきます。 これは自分で入力していくので問題ありません。 ここからが問題です。 データベースとは別のエクセルにマクロを登録して、データベースから仕入れ情報を検索したいのです。 例えば… A1商品名、A2重量、A3仕入値…というように項目を作っていきます。 そしてB行に検索したい文字、数値を入力します。 そしてボタン1をクリックすると、B 行に入力した値に一致するデータを行ごとD行に呼び出します。 最後にD行の売上の項目に売上を記入して、更新したD行のデータをシート2、又は別のエクセルファイルに張り付けられるようにしたいです。 データの張り付けを文字のあるセルの最後尾の下の空白のセルに張り付けていけるようにしたいです。 どのようなマクロを組むと良いでしょうか?どのような言語を使うと良いでしょうか? 詳しい方是非是非教えて下さい。。