【アプリ版】サポートOS変更のお知らせ

VBAを使って下記の設定を考案中ですが、
なかなか呼び出すことができずこまっています。

-sheet1-
 A B C D E 
1 あ い う え お
2   あか    ※セルの結合がされているため A2 プルダウンで「いか」など選べる
3 空白
4 いか    ※プルダウンで「うし」など選べる
5 テキスト    ※テキストボックスが設定されている状態
6 ボックス欄   

-sheet2-
 A   B  C
1 あか いか 釣り
2 あか いか 食べる
3 あか いか 食べない
4 あか うし 赤身
5 あか うし 白身なし
6 いか うし いない
7 うし いわ なにそれ
8 うし いわ ○○島
9 うし おに つよい

シート1のテキストボックスにシート2の条件が一致している
1,2,3行にある C列が出力されるようにしたいです。
また1,2,3行ごとに一行ずつ表示させるにはVBAで
どのようにしたらよいか教えて下さい。

小生、VBA勉強中のため八方塞がりです。
どうか助けてください。

質問者からの補足コメント

  • 説明が足りず申し訳ございません。
    出力された結果に対して手書きで追記したいので
    テキストにvlookupなどを入れてしまうと関数がセル内に記載されてしまい
    書き込みができなくなってしまいます。
    そのため、VBAから条件にあったものを抽出などする必要があります。
    どうか何卒よろしくお願いいたします。

      補足日時:2021/07/27 06:55
gooドクター

A 回答 (4件)

テキストボックスというのは、入力用セルをそう呼んでる?それともコントロール?


まぁいいけど。

値の反映をどのタイミングでするかは分かりませんが、
例えば、A1セルに値を反映させたいとして、
・関数はB1セルへ埋め込む
・任意のタイミングで、B1からA1へ値をコピーしてやればいい。

こっちの方が処理も早い、作りも単純、メンテナンスも楽。

どうしてもVBAでというなら、配列使えば速い。
これも比較的簡単に出来るし、似たようなサンプルはいくらでもネットで出てくる。
    • good
    • 0

関数は、見えない所に差し込めばいい。


VBAで、その関数の答えを指定したセルへ転記させればいい。
そして、関数の方が爆速。
一万行以上になると、それがよく分かる。

ま、検討してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
例えば、http://officetanaka.net/excel/function/tips/tips …
この通りに行うとテキストボックスには”=なにがし”が入ってしまうかと思うのですが、
確かに万単位でのVBAですと厳しいものがありますよね

お礼日時:2021/07/27 07:33

VBAじゃないとだめですか?


式で良ければ、IF・VLOOK・&を使えばできそうな気がしますが……
    • good
    • 0

これならvlookup関数でいける。


文字1と文字2を一つの文字にして検索キーワードとする。
シート2のリストの左端列に文字1と文字2を結合させたキー列を追加する。

これは、よく使うテクニック。
理解できた?
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング