- ベストアンサー
EXCELのFAX用紙で同じ会社の違う担当を選択する方法
- EXCELのFAX用紙で会社名を指定すると、自動的に該当する担当者が選択されるようにする方法について質問です。
- 現在、会社名を指定すると、部署が違う担当者が選択できなくなる問題があります。会社名を選択した後に、ドロップダウンリストなどで別の担当者を選択できるようにする方法を教えてください。
- 適切な方法としては、会社名を選択した際に他の選択肢がある場合はドロップダウンリストなどを使用し、さらなる選択を可能にすることです。選択肢がない場合は自動的に選択されるようにします。どのような方法が適切かアドバイスをいただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>EXCELのFAX用紙で >選択肢がない場合はそのまま自動選択で完了。 >他の選択肢がある場合にはドロップダウンリスト というお話の前提なので,関数(と選択肢)を使った方法では使い回しができなくなってしまい,不適当です。 という事でマクロを組み込んで行わせる格好になりますね。「丸なげでカンペキ版を作ってちょーだい」ではいつまでたっても終わらないので,基本を教わった上でご自分で実際のシートに組み込んで作成してください。 サンプル: シート1のA1セルに会社名を記入する シート1のB1セルに相手名称が現れるか,若しくは選択するようにする シート2のデータリストには A列に会社名を列記 B列に相手名称を列記 してある 作業手順: シート1のシート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range) dim r1 as long dim r2 as long if target.address <> "$A$1" then exit sub if target = "" then exit sub range("B1").validation.delete ’会社名にヒットするリストの件数を調査 select case application.countif(worksheets("Sheet2").range("A:A"), target) case 0 ’登録されたリストになかった range("B1") = "該当がありません" case 1 ’1件あった range("B1").formula = "=VLOOKUP(A1,Sheet2!A:B,2,FALSE)" case else ’複数行あった range("B1") = "選択してください" r1 = application.match(target, worksheets("Sheet2").range("A:A"), 0) r2 = application.countif(worksheets("Sheet2").range("A:A"), target) range("B1").validation.add type:=xlvalidatelist, alertstyle:=xlvalidalertstop, _ operator:=xlbetween, formula1:="=INDIRECT(""Sheet2!B" & r1 & ":B" & (r1 + r2 -1) & """)" end select end sub
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)