こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル:指定した別シートのセルに入力する方法

エクセル2000 を使用しています。

sheet1 のセルに数字を入力して
・sheet2、sheet3、・・・ の指定したシートの指定したセルに文字を反映させる方法はありますでしょうか?

例)sheet1 A3 に"100"と入力すると、('sheet2'の'B2'を指定)
  sheet2のB2に"100"と反映

  同様に sheet1 A3 に"300"と入力すると、('sheet3'の'C5'を指定)
  sheet3のC5に"300"と反映

※作業しやすい為に入力セルを一つのみにするというのは難しいでしょうか?
条件
・一度指定して入力したセルは何度も入力しなおします。
・入力は数値のみです。
・入力の対象シートは30シート程あります。

対象となるセル全てに関数をいれてみて・・とやってみたのですが、たどり着きませんでした。
分かる方どなたか教えていただけますでしょうか?

質問文が下手ですいません、回答していただけたら補足で再度質問しなおしたいと思います。。

VB、関数どちらでも分かる方お願いします。

投稿日時 - 2012-05-29 11:37:06

QNo.7502591

すぐに回答ほしいです

質問者が選んだベストアンサー

>セルはセル番地ではなくて、文字等で場所を指定するように
>関数を使いたいと思うんですが、
>A2のセルは関数が入っているものでも大丈夫でしょうか?

どうとでもできます。


たとえば。
B2やC2に所定の「文字等」を記入し、A2にそれらの文字等から該当する「セル番地」を計算する数式を組んでも出来ます。

あなたの「文字等」を具体的にどこから探したらいいのか情報がないので、次のように作成してください。
A1にシート名を記入する
A1シートのA列に「縦項目の言葉」が列記されている
A1シートの1行目に「横項目の言葉」が列記されている
縦の言葉をB2に、横の言葉をC2に記入する

A2には
=IF(OR(B2="",C2=""),"",ADDRESS(MATCH(B2,INDIRECT(A1&"!A:A"),0),MATCH(C2,INDIRECT(A1&"!1:1"),0)))
とする




たとえば。
マクロを工夫して、B2やC2に記入された文字等から該当するセルをマクロに探させても出来ます。
ロジックは上述A2の数式と全く同じです。

投稿日時 - 2012-05-31 00:13:21

お礼

ご回答ありがとうございます。。)

>A2のセルは関数が入っているものでも・・・ の関数ですが、自分で作成できそうでしたので、今回内容は記入しなかったのですが。

>A1シートのA列に「縦項目の言葉」が列記されている
A>1シートの1行目に「横項目の言葉」が列記されている
まさにその通りの関数を作成しようと思っていました。。
ここまで当てられると・・・すごいと感じてしまいます。

ありがとうございます。マクロで探させられるようにというのも・・
参考にさせて頂きます。

ありがとうございます。。)

投稿日時 - 2012-06-06 13:44:37

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>sheet1 A3 に"100"と入力すると、('sheet2'の'B2'を指定)

指定するってのは,つまりエクセルに判るようにデータとして記入するなどをするってことです。
シートをめくっていった方が簡単だとは思いますが。


実施例:
A1セルに Sheet2 と記入することにする
A2セルに B2 と記入することにする
A3セルに数値を記入することにする


作業:
シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub worksheet_change(byval Target as excel.range)
 if target.address <> "$A$3" then exit sub
 if target = "" then exit sub

 if range("A1") = "" then
 msgbox "INPUT SHEET NAME IN A1"
 exit sub
 end if

 if range("A2") = "" then
 msgbox "INPUT CELL ADRES IN A2"
 exit sub
 end if

 on error goto errhandle
 worksheets(range("A1").value).range(range("A2").value).value = range("A3").value
 exit sub

errhandle:
 msgbox "NOT FOUND"
end sub

投稿日時 - 2012-05-29 14:15:00

お礼

回答ありがとうございます!!

確かにシートとセルを指定する手間があったら直接辿った方が早そうですよねf^^;
上記式を使った際の補足を伺ってもいいでしょうか?

質問させて頂いたエクセルの指定される側のsheet2以降のシートは
列と行に文字等記入があるのですが、
セルはセル番地ではなくて、文字等で場所を指定するように
関数を使いたいと思うんですが、
A2のセルは関数が入っているものでも大丈夫でしょうか?

投稿日時 - 2012-05-29 15:07:43

ANo.1

シート1のA3のデータを例えばシート2のB3セルに表示させるためにはシート2のB3セルに =Sheet1!A3 といった式を入力させることが必要です。別のセルやシートに表示させるためには該当するシートの表示したいセルに上のような式を入力する以外に方法はありません。

投稿日時 - 2012-05-29 11:50:38

お礼

ありがとうございます。

しかし、それでは対象が30シートに及ぶため 
sheet1の入力するセルを選ぶよりも、直接sheetのセルを選択する方が早くなってしまうのです。
他の方の質問も見ましたが、複数シートを選択範囲にするVBがみつかりませんでした。

また解決策ありましたら回答お願いしますm(。。)m

投稿日時 - 2012-05-29 11:56:06

あなたにオススメの質問