ユーザーフォームの使い方で、テキストボックスやコンボボックスのControlSourceを,フォームを開いたのとは別のシートのセルにあてたいんですけど、できますか?
同様に、コンボボックスのRowSourceのリストも、別のシートの値を拾いたいんです。
具体的に言えば、ユーザーフォームを開くのは、常に「Sheet1」であって、入力した内容を表示するのは「Sheet2」なのです。
コンボボックスのリストは本当は、「Sheet3」の値を拾いたいのです。
今はよくわからないので、全部「Sheet1」にリンク(?)させて、値を取得させるようにしてます。
それと、セルの数式の中に別のセルの数値を代入できますか?
例えば、あるセルの数式が「=Sheet2!A4」だとしましょう。
この場合の「Sheet2」の「2」に、例えば、ある別のセルの値を代入して、
「=Sheet3!A4」とかにしたいのです。
つまり「=Sheet”A1”!A4」みたいにして、「A1」のセルの値が
「2」、「3」に変われば元の数式も変わる、みたいに。
同じように、セルの範囲につけた名前や、リンクするファイルの名前も数式の変数に入れられるのでしょうか?
とりあえず、セルの数式の中に、別のセルの値を”文字”や”数値”として入れたいのです。
ちょっと説明がわかりにくいかもしれないけど、教えて下さい。
No.3ベストアンサー
- 回答日時:
●平成13年9月 加工実績表.xlsが開いていれば、A1に半角数値9があるとして、
=INDIRECT("'C:\My Documents\工場用\月間加工実績表\[平成13年"& JIS(A1) &"月 加工実績表.xls]入力用'!$B$129")
で可能です。
●参照するBookが開いていなければ上の式は値を返しません。
マクロ(ユーザー定義関数)もダメでしょう。(マクロで開けば別ですが)
悪あがきとしては、今、セルの算式が『[平成13年8月 加工実績表.xls]』となっていれば、[平成13年8月 加工実績表.xls]をコピーして置き換えのテキストボックスに貼り付けて、
[平成13年8月 加工実績表.xls]
↓
[平成13年9月 加工実績表.xls]
の置き換えを行えば値は変わります。
>欲張って『アクセス』にも手を出そうとしておりますが・・・。
是非やるべきです。この質問のような悩みはうそのようになくなるかもしれません。
前段はご勘弁を。SEさんには働いてもらっています。専門のHPには信じられないような方(ホントの専門家?尊敬できそう)がたくさんいらっしゃいますヨ。では。
No.2
- 回答日時:
後半部分についての別方法を思いつきました。
>それと、セルの数式の中に別のセルの数値を代入できますか?
A1にシート番号を入力するとして、=INDIRECT("Sheet"&A1&"!A4") で指定したシートのA4の値を表示します。
>同じように、セルの範囲につけた名前
単一セルにDATA1、DATA2、DATA3・・・と名前が付いていれば、
A1に範囲名の番号を入力するとして、=INDIRECT("DATA"&A1) で指定した範囲名のセル値を表示します。
複数セル範囲(A1からZ100とか)にTBL1、TBL2、TBL3・・・と範囲名がついていれば、
=INDEX(INDIRECT("TBL"&A1),1,1)
のように使えば、Index関数の参照する範囲を切り替えられます。
>リンクするファイルの名前
内容がよく分からないため何ともいえませんが、ファイルの名前なら文字列の連結で定義できます・・・
="myFileName"&A1&".txt" のような感じです。リンク先は困難かもしれません。
ご参考に。
御礼が遅くなってゴメンナサイ。
ユーザーフォームの件と、セルの数式にセルの値を代入する件、できました。
ありがとうございます!!!
ずうずうしいようですが、もうひとつ。
リンクするファイル名の件ですが、内容を説明しますと、
あるセルの数式が次のような内容だったとします。
='C:\My Documents\工場用\月間加工実績表\[平成13年9月 加工実績表.xls]入力用'!$B$129
この場合の『9月』の『9』部分に、指定したセルの数字を代入したいのです。
『加工実績表』は『月ごと』にブックを作っているので、どうしてもこのような形になってしまいます。
よろしくお願いします。
余談ですが、nishi6さんはナゼそんなにエクセルに詳しいのですか?
SEのようなお仕事をされてるのですか?
ワタクシはエクセルを始めて、約10ヶ月で、最近進歩が止まってしまったような気がします。欲張って『アクセス』にも手を出そうとしておりますが・・・。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで「時間の足し算」はどう...
-
オートフィルのショートカット...
-
エクセルに詳しい方教えて下さ...
-
勤務表をエクセルで作る際、 最...
-
Excel2010で、今の、Ex...
-
UNIQUE関数が使えないバージョ...
-
Excelについて質問です。 表の...
-
Excelについて質問です。 ・デ...
-
Excelのフォントについて
-
Excel表の文字の幅を狭くしたい
-
Excelについて質問です。
-
エクセルのパスワードの一括解...
-
Excel 2019 での上書き保存につ...
-
EXCELで、関数を使って対象の項...
-
VBA
-
Excelで、10000,20000,30000と...
-
FormulaR1C1の 相対参照式のコピー
-
エクセルのソートについて
-
Excel 連番を入力する方法
-
Excelで投入数、加工数、検査待...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル詳しい方教えて下さい
-
ExcelでA列をコピーしたいので...
-
エクセルのセル統合について
-
Excelの関数で起きた現象の原因...
-
Excelファイルが閉じられい!
-
Excelのシート背景に不明な文字...
-
エクセルの枠線
-
Excel 領収書発行
-
エクセル関数の使い方を教えて...
-
C列にF列の担当者(A〜)を順番...
-
ピポットテーブルの参照元を別...
-
EXCEl VBA
-
Excelでの判別方法
-
VBAで、サブフォルダにある複数...
-
"りんご"と"みかん"というシー...
-
マクロについて教えてください。
-
EXCELファイルが読み取り専用で...
-
同一セルに入力規則のリストと...
-
100行50列の表で、1~40列でフ...
-
なぜか「Nextに対応するForがあ...
おすすめ情報