• ベストアンサー

マクロ?

こんにちわ。 WIN/XP/Excel2003を使用しています。 不動産売買の仕事をしていて展示会案内のチラシの作成をExcelで行っているのですが、チラシには物件の概要を載せなければならなく(たくさん項目があります)、その物件を売るたびにチラシを作成しなおさなければなりません。(一面に何物件も載せるため、毎回違う組み合わせになるため再利用ができません。)人間の行う仕事ですから、もちろんミスもしますのでそのミスを避けるためにもできれば元になる枠を作成、物件ごとに番号をつけて、チラシを作成する際には付けた番号を入力すれば一括でその物件の概要が打ち出せる。という形にしたいのです。(たとえば、「1」と入力すれば該当する物件の所在地・土地面積・建物面積など必要な概要がチラシ枠のそれぞれの該当するところに情報が飛ぶ) 文章だけではなかなかうまく説明できないのですが、マクロなら解消できるのか気になったので聞いてみました。=を使った式で挑戦してみましたが複数の情報には反応せず、断念しました。何かいい方法ありませんか?

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

sheet1 を表示用とし、sheet2をデータ保存用とします。 案1) sheet1: A1に検索番号、B1に検索した物件の所在地、C1に検索した物件の土地面積、 D1に検索した物件の建物面積を表示するものとします。 sheet2: B列に各物件の所在地、C列に各物件の土地面積、D列に各物件の建物面積を 表示するものとします。 sheet1のB1セルに=INDEX(Sheet2!B:B,A1,)、C1に=INDEX(Sheet2!C:C,A1,)、 D1に=INDEX(Sheet2!D:D,A1,)と設定します。 A1には、sheet2の行番号を入力します。 案2) これは、案1)の発展形です。 sheet2のA列に物件IDを入力します。 sheet1のA列にリストボックスを配置し、リストボックスの入力範囲を ”Sheet2!A:A”、リンクするセルをF1とします。 sheet1のB1セルに=INDEX(Sheet2!B:B,F1,)、C1に=INDEX(Sheet2!C:C,F1,)、 D1に=INDEX(Sheet2!D:D,F1,)と設定します。 このような形で、実現できるかと思われます。

halky
質問者

お礼

回答ありがとうございます。 一面に対して、最大16件の物件情報を入れなければならず、またその位置も毎回ランダムに入ります。この式で対応することができますでしょうか。 何分、マクロ・関数は初心者と変わらないのでお手数でしょうがよろしくお願いいたします。

その他の回答 (3)

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

>マクロなら解消できるのか エクセルVBAのプログラムが組める(相当熟達)必要があります。マクロというものを持ってくれば解決するものではないのです。システム屋さんに頼むようなことですので。 関数を応用する法 物件の情報シートSheet1の各行に物件の情報があり、各列に項目があるとします。 チラシSheet2の16箇所の左上隅のセルに物件番号のセルを設け、展示会の都度、並べたい順を考え、16箇所番号を入力します。 1か所のブロックでは、その番号を元にSheetの物件の項目を =VLOOKUP(番号セル、Sheet1!$a$1:$j$100,項目列順序、FALSE) で 項目がA列 番号    B列 所在地    C列 広さ    D列 階数    E列 築年数 なら項目列順序は、2で所在地、3で広さが取れてセットできます。 これらのセルは、通常16箇所ないでは同じ配置やフォントやセットでよいはずです。 出なくても、複写して多少変えれば済みます。 質問が具体的にセル関係の記述がないので、説明が歯がゆいですが これで相当楽になる(番号指定だけ)(自動化される)はずです。番号などが見えて邪魔な場合は、白色文字にして、列を隠したりして対処できます。 フォント・罫線やセル色はチラシに独自に設定できます。 写真の挿入も、簡単なVBAでできそうなので、上記ができて後、次の段階として改めて質問してみてください。

halky
質問者

お礼

回答ありがとうございます。 Excelの質問ってうまくできなくて返事があるのかとても心配だったのですが、みなさんいろいろ教えてくださって助かりました。 「VLOOKUP」ではできないだろうと思ってたのですができるのですね★さっそく作成してスピーディーなチラシ作成に励もうと思います!ありがとうございました!

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.3

>一面に対して、最大16件の物件情報を入れなければならず、またその位置も毎回ランダムに入ります。この式で対応することができますでしょうか。 物件Aが、No.1~16のどこにくるか、わからないということでしょうか? それとも、B1・C1・D1の位置関係(レイアウト)が毎回変わるということでしょうか? 前者であれば問題ありません。先ほど解説したA1~D1(F1)の設定を16行 分作成すればいいでしょう。 後者であれば、一度設定したセルの内容を、その都度、適切な位置に移動させないとだめでしょうね。

halky
質問者

お礼

度々ありがとうございます。 ためしにやってみたのですが…感動しました(> <)!!! ありがとうございます! チラシの種類が何種類かあって1ファイルずつ設定していくのに結構時間がかかりそうですが、がんばってみようと思います。ありがとうございました。

  • handomari
  • ベストアンサー率47% (83/174)
回答No.1

オートシェイプにセルの内容を参照するのはどうでしょうか? Excelでは、オートシェイプを描いて、それを選択した後、数式バーに「=a1」のように入力すると、セルA1のデータをオートシェイプの中に入れることができます。 ですから、あらかじめ1行目をチラシに入れるデータの欄として確保して、印刷したい情報を別の表から1行目にコピーしたり、直接に入力すれば1行目のデータを入れたチラシができるという具合です。

halky
質問者

お礼

回答ありがとうございます。 既にSheet2に全物件の情報を打ち出しているのでそれで試したのですが、複数のセルには反応しないようです…。フォントが違ったり、文字のポイントが違ったりするので、出来れば複数のセルに反応してほしいのです。 →1物件ごとに名前を付けて番号の入力によって一括で呼び出したい。のです。無理でしょうか?

関連するQ&A