ユーザーフォームの使い方で、テキストボックスやコンボボックスの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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今まで文字化けなく開けていたc...
-
スプレッドシートで指定された...
-
ExcelでASCを使って全角を半角...
-
マクロの処理が遅くなった
-
Excel関数について教えてくださ...
-
作成した数式を値として表示し...
-
エクセルの質問です。 F列からL...
-
エクセルでファイルの最終更新...
-
EXCELの散布図で日付が1900年に...
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルのセル内に分数などの...
-
Excelの警告について
-
Microsoft 365Excelの見開きペ...
-
Excel関数について教えてくださ...
-
シートの情報を別のシートへま...
-
Excelマクロで空白セルを詰めて...
-
【マクロ】フォルダ内にあるPDF...
-
index関数の説明をお願いします。
-
重複しない値を取り出したい
-
エクセルの数式バーのフォント...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報