• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルについて質問です。)

Excelのユーザーフォームで別シートのセルにControlSourceを設定する方法とは?

nishi6の回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

テキストボックスのControlSourceがSheet2のA1なら  Sheet2!A1をセット。  または、Sheet2のA1に範囲名を付けて、それをセット。 コンボボックスのRowSourceがSheet3のA1~A10なら  Sheet3!A1:A10をセット。  または、Sheet3のA1:A10に範囲名を付けて、それをセット。 A1の値によって、A2の式が切り替わるようにするには、一案ですが、  =CHOOSE(A1,Sheet1!A4,Sheet2!A4,Sheet3!A4) のようにすれば値は求められます。回答になっていないかもしれませんね。 または、ユーザー定義関数  Public Function SheetAndRange(Sht As Integer, rg As Range)    SheetAndRange = Worksheets(Sht).Range(rg.Address)  End Function を標準モジュールに貼り付け、  =SheetAndRange(A1,A4) とすれば値は求められます。 範囲名ですが、これもユーザー定義関数を作れば切替えられます。 例として、Sheet1のA1:C1に範囲名『Total1』、Sheet1のA2:C2を範囲名『Total2』とします。  Public Function TotalChange(num As Integer)    TotalChange = Application.Sum(Range("Total" & num))  End Function を標準モジュールに貼り付け、  =TotalChange(1) とすればA1:C1の計、=TotalChange(2) とすればA2:C2の計になります。 ご参考に。

関連するQ&A

  • エクセルVBAについて質問です。

    エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。

  • ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

    エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

  • excelでVBAでユーザーフォームのリストBOX

    下記VBAの作成の仕方を教えていただけないでしょうか。 やりたいこと (1)sheet2のA1セル~A5セルまでの間の間をユーザーフォームのリストボックスに登録する (2)sheet1のA1セルをクリックすると、ユーザーフォームが起動し、任意のリストをクリックすると、 その値がA1セルに格納され。ユーザーフォームが終了する。 ※コマンドボタンは使わずにお願いします。なおexcel2000です。

  • Excel VBA ユーザーフォームのコンボボックスに表示する値の入力方法

    Excel Xを使用して、VBAのユーザフォームにコンボボックスを作りましたが、どうしてもコンボボックス内に表示する値の入力方法が分かりません。 WEBや本などで「これ」と思われるものを実験していますが、どれも表示することができません。 できるだけ詳しく教えていただけませんか? したいことは、  cbocenter というコンボボックスに値を出します。  値は List シートの A2 から A18 に入力済みです。  それと値から選択した値を data シートの J列 に  表示させたいのです。(行の指定はできています) 本当に困ってます。よろしくお願いします。

  • エクセルVBA「コンボボックスの値をワークシートに代入」

    エクセルVBA「コンボボックスの値をワークシートに代入」 連日質問してしまい申し訳ありません。・・・ 今回は「コンボボックス」にリストアップされている値をセルに入力したいのです。 画像を見て頂ければと思いますが、コンボボックス(左ウィンドウ画像)には25の文字列がリストアップされています。 このリストアップされている文字列をすべてワークシートのセルB4からの"4"列に入力したいのです。 なんだか滅茶苦茶ですが、ご理解頂ければご協力お願いします。

  • VBAマクロのコンボボックス 続き 3

    ほんとうに助かっております。 ここに質問するということはネットでみつけきれなかったということでご了承ください。 コンボボックスの設置場所はユーザフォームではなくワークシート上です。 ちなみにverはExcel2003です。 コンボボックスの性質といいますか、あるセルの値をみてリストに値を表示するかしないかを行いたいです。 しかし、すぐには反映されず一度動作(オブジェクト実行)させないと値の反映が行われません。 セルの値が変わると即座にコンボボックスリスト内の値の有無が反映させる方法を教えてください。 よろしくお願いいたします。

  • Excel VBA コンボボックスの使い方

     VBAでのコンボボックスの使い方をしらべているのですが、うまく見つかりません。コンボボックスのリストに登録するのはどうしたらよいのでしょうか?シート上のセル内のデータを使用しないとリストの登録は出来ないのでしょうか?VBA上で作成して、ユーザーフォームで選択できるようにしたいと思っています。VBAをはじめたばかりなので初歩的な質問で大変恐縮です。どなたかわかる方がいらっしゃったらお願い致します。

  • エクセル2003の使い方について

    エクセル2003の使い方について エクセル2003の使い方で教えていただきたいことがあります。 例えば、Sheet1のA1セルに数式を入力してある値がでてきました。 その値を別のsheet2のB1セル、sheet3のC1セル、sheet4のD1セルでも使用します。 これら別々のsheetではA1の値を使って別の計算をするため、 A1の値が変わるたびに変更になった値を手入力するのではなく、A1セルとリンクさせることはできますか? よろしくお願いいたします。

  • Excel VBA の質問です

    ユーザーフォームの中のコンボボックスの値をリストから呼び出して選択したとき、テキストボックスの値を同じリストの別の列から表示させたいです 会社の仕事で品番と品名がありますが、必ず品番は一つの固定の品名を持っています。 なので、品番を製品のマスタからひろってきてるのでわざわざ品名を入力するのは面倒です 製品マスタは例えばA列の2行目に ある品番があればその品名がB列の2行目に必ずあります よろしくお願いします