• ベストアンサー

Excel2000:複数シート同座標セルから、別シート一覧を連番で参照するには?

同一のExcelファイル中に、30シートあるとします。 これらはどれも同じフォームで、全てのシートの同座標セルに連番をとりたいとします。 その連番のナンバーは、31番目のシートに一覧になっています。 この30ものシートの同座標セルから、31番目の一覧にひとつずつズレて参照させるには、どうしたらいいでしょうか。 例) 1シートA1に、31番目シートA1の「No.1-1」 2シートA1に、31番目シートA2の「No.1-2」 ※ちなみに、30シート分のフォームが既にあり、後で一覧のシートを追加するという前提です。 今は一つずつのシートを開けて、31番目シートの一覧へ、一つ一つリンクさせているだけです。 でも、これをやってるとシートが多くなると面倒なんですよね。 多分一括で出来るやり方がExcelにはあると思うんです。 ただし、私はVBはまったくの素人なので、表示形式や関数で教えていただけると嬉しいです。 また、なぜそういうやり方になるのかも、お勉強のために解説していただけると尚嬉しいです。 よろしくお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(1)Sheet31!A1をコピーして、他のシートのA1にコピーしても、式のA1のAや1の部分は変化しません。同一シート内で式を下方向や右方向へ複写する時の番地の変化の機能が使えません。 (2)Sheetをなべてすべて指定するのはCTRLを押しながら全てのシート名のタブをクリックする方法でしょうが、それをしても、そもそも式がコピーされるわけでもありませんし、むろんSheet1!A1の1の部分が2、3、・・・と変化しません。 (3)持ってくる番号はSheet31のA1:A30に固まって存在しても、値を受ける(セットされる)べき方(セル)が、「各シートのA1」と言う風にバラバラですから、エクセルでは一気にデータ(番号)を持ってくることが出来ません。 >多分一括で出来るやり方がExcelにはあると思うんです --->従って、上記の理由からありません。 (5)関数式は取ってくる方(セル)に設定しないといけません。 本質問では、各シートのA1セルです。 それに値を持ってくるのに、複写機能等が使えない以上、1つ1つ人手でセットせざるを得ません。 Sheet31のA1やA2のセルからSheet1のA1やSheet2のA1に値を「飛ばす」わけにいきません。 ところが、VBAではこれが出来ます。 (値を受けるセル)=(値を渡すセル){右辺から左辺へ代入する}とプログラムコードで表現出きるからです。 それと(値を受けるセル)と(値を渡すセル)を30個書き並べるのでなく、1行だけを書き、1から30まで変化させて、値代入を実行せよとプログラムでは表現できます。ここが便利なところです。 >VBじゃないと難しいんですね・ --->そうです。 >教えていただいたVBで、素人感覚ながらちょっと頑張って作って見ようかと思います。 -->#1のご解答の、どこにもVBAのコードはないのでは。 一例はシート数を少なくして、Sheet1からSheet4までの各々のA1に、Sheet5のA1:A4までに入った番号(でなくてもなんでも可)をセットする例をあげます。 Sub test01() Dim sh As Worksheet i = 1 For Each sh In Worksheets If sh.Name <> "Sheet5" Then sh.Cells(1, "A") = Worksheets("sheet5").Cells(i, "A") i = i + 1 End If Next End Sub を標準モジュールに貼りつけて実行すると良い。ただしシートタブの左からの順番により決定されます。

sydneyh
質問者

お礼

imogasiさん、回答ありがとうございます。 とても丁寧に詳細に教えていただけて嬉しいです。 ですが、自宅PCにOfficeが入ってないので(^^;)、ぜひ会社で検証してみようと思います。 不勉強なVBでも、なんとかなりそうなので、今後の作業が楽になれそうですよ(^^) どうもありがとうございました。

sydneyh
質問者

補足

本日ためしにやってみたところ、見事出来ました! シートは既に50に増えたんですが、ちゃんと50個のシート全てに一括ナンバリング出来ましたよ。 いまいち言語は分かりませんが、この形態だけは、どう座標を変えれば反映されるか分かったみたいです。 本当にどうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 1シートA1に、31番目シートA1の「No.1-1」 > 2シートA1に、31番目シートA2の「No.1-2」 シートを複製して追加していくので、「1シート!A1」「2シート!A1」には同じ式を入れたいという事だと思います。 Excelのワークシート関数で「シート名」「シート番号」を取得できるものが無いようですので、ワークシート関数、書式設定だけで対処するのは難しいです。 VBAを使って「シート名」「シート番号」を返すユーザー定義関数が作れれば対処可能なのですが…。 -- 1シート!A1に1 2シート!A1に2 … などと入っているという前提であれば、 B1:=INDIRECT("31番目シート!A"&A1) で「31番目シートのA<A1セルの番号>の値」が参照できます。

sydneyh
質問者

お礼

neKo_deuxさん、回答ありがとうございます。 そうですか、VBじゃないと難しいんですね・・・ Excelなら、入力規則のリストとか、IF関数とかで何とかなるんじゃないかと期待してたんですけど(-_-;) でも教えていただいたVBで、素人感覚ながらちょっと頑張って作って見ようかと思います。 もうどうせ既に作成済みのものだし、のんびりやってみます。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelマクロ:複数シート同座標セルの値を、連番で一覧に参照したい

    マクロは素人なのでご教授お願いします。 Excelブック一つにシートが20あったとします。 ○20シート全ての同座標セルに、ある商品の「合計」と「個数」の値がある ○「集計」シートが別にあり、「sheet1」から「sheet20」までを連番で一覧にしてある 該当のセルに「合計」と「個数」の値を参照させる <「集計」シート 結果例>    A      B       C  1 シート名  合計数   個数(表見出し) 2 sheet1    78      5 3 sheet2    90      17 4 sheet3    112     224 また、以前まったくの逆の条件で質問をしまして、良回答いただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=715150 参考までにご覧になってみて下さい。 よろしくお願い致します。

  • 複数のシートのセル参照について

    Excelで複数のsheetのセル参照についてお伺いします。 たとえばsheetが1から50まであるとします。 sheet1のA1のセルには、sheet2のA1のセル参照、 sheet1のA2のセルには、sheet3のA1のセル参照、    ↓ sheet1のA49のセルには、sheet50のA1のセル参照、 といった複数のシートのセル参照を行いたいと思います。 sheet1のA1のセルに、sheet2のA1のセル参照の値を入力して、フィルハンドルでドラッグしても連続したデータができません。 簡単な操作で、複数のシートのセル参照をするにはどうしたらよいでしょうか。 よろしくお願いいたします。

  • 別のシートを参照したくても、参照できない

    エクセル2002を使っています。  Sheet1のB1セルに、同ブック内の「あいうえお」というSheetのA1セルをリンク・・というか、参照をしています(あいうえお!A1)と。  そして、同ブック内に かきくけこ さしすせそ たちつてと・・・と、後9シート作る予定だったので、前もってSheet1に同じく かきくけこ!A2 さしすせそ!A3 たちつてと!A4 と入力していました。  そして、シートを新たにい9つ作り、シート名を かきくけこ さしすせそ・・・ にしたのですが、みな#REF! のままなのです。  どうやったら、参照がうまく出来るようになるのでしょうか?  もうすでにシートも作り、参照もしてあるので、一から打ち直すのは面倒です。  何か対策は無いでしょうか?  

  • EXCEL 一覧シートから各シートへ参照

    現在シートが 一覧、1、2、3、 とあります。 一覧シートには、 シート名(A1) 名前(B1) 1(A2) 山田(B2) 2(A3) 鈴木(B3) 3(A4) 木村(B4) と記載されております。(カッコ内は、セルの位置です) シート 1 のA1には、山田 シート1のB2を参照 シート 2 のA1には、鈴木 シート1のB3を参照 シート 3 のA1には、木村 シート1のB4を参照 とシート 一覧から参照して表示されるようにしたい と考えております。 数字の名前のシートが数個であればシート毎に入力すれば済む話ですが、 予定では、順次増え、最終的には100位になる予定です。 数式、マクロ VBA 等を使って  一覧シートに名前を入力すると該当のシートのA1セルに参照させる事は可能でしょうか? よろしくお願いいたします

  • エクセル:別シートのセル参照でセルが結合されているときエラーになる

    エクセル:別シートのセル参照でセルが結合されているときエラーになる 別シートのセル参照でセルが結合されているとき結果がエラーで返ってきます。 エラー:='A-4'!V339:AD339 「:」以降を削除すれば正常値になります。 1000個くらい参照をするのですが、いちいち「:」以降を削除するのは手間なので ・一括で削除する方法 ・もっと簡易にできる別の方法 があれば教えてください。

  • 別シートのセルを絶対参照にする

    office2007、Excelで別シートのセルを絶対参照する方法を教えて下さい。 セルに「=シート名セル番地」を力した場合は、 セル番地を$で絶対参照にしても 参照先シートのその上に行を挿入すると $A$5を指定していても行を挿入した場合は 自動的に$A$6になってしまいます。 別シートに行を挿入しても参照先のセルを固定する方法を教えて下さい。

  • 複数シートのセル値を参照してまとめて一覧表にしたい

    100あるシートの最後にまとめとして101のシートを作ります。 その101のシートにはシート1~シート100までのセル値を自動で参照したいのです。 例えばシート1のI6:名前、I10:売上、AQ13:原価、AB40:利益があり、それをシート101のまとめペー1ジの2行目に表示(参照)します。 101まとめページの3行目には同じセル番号のシート2のI6:名前、I10:売上、AQ13:原価、AB40:利益を反映。 101まとめページの4行目にはシート3のI6:名前、I10:売上、AQ13:原価、AB40:利益を反映。 このようにシート1から100までの同じセル番号の各シートのセル値を参照して一覧表にしたいのです。 お分かりにくい説明かもしれなくてすみません。 手作業でまとめシートに各セルに=で参照値をリンクするには大変な作業となりますので、何らかの良い方法があれば教えて頂けますでしょうか? よろしくお願い致します。

  • 別シートへのセル参照について

    別シートへのセル参照についての質問です。 例えばSheet1のA1,B3,C6,G9に値が入っているとします。 その値を順にSheet2のB2,C4,D9,E17に参照したいのですが、 それぞれにセル参照しないとダメなんでしょうか? Sheet1,Sheet2に違う種類の表があって、それぞれに同じ値を入力するんですが、Sheet1に入力すれば自動的に入るようにしたいです。 実際はSheetや、値を入力するセルがかなり多いので、ひとつひとつセル参照するのが大変なので・・・よろしくお願いします。

  • EXCELで全てのシートを参照した一覧表の作成方法

    色々な情報を入力したSheetが50枚あり、 あまり手間のかからない方法で、 この50枚の中で、ある特定のセルの情報だけを参照させて一覧にした表を作成したいと思っています。 具体的には、Sheet名が”一覧表”というシートを作成し、 この”一覧表”シートの B1 セルには Sheet1 の A1 セルの値を表示させ、 次いで、同”一覧表”シートの B2 セルには Sheet2 の A1 セルの値を、 次いで、同”一覧表”シートの B3 セルには Sheet3 の A1 セルの値を、                       ・                       ・                       ・ 最後に、同”一覧表”シートの B50 セルには Sheet50 の A1 セルの値を、 といった形で、一覧表を作成したいです。 ご教示いただけますでしょうか。 よろしくお願いいたします。

  • Excel 別シートのセル参照

    Excel で、二つのシート間でセル参照したいのですが、シートに書き込んでおくコマンドの書き方を教えてください。 (操作) Sheet2 でA列のどこかのセルをダブルクリックしたとき、B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 よろしくお願いします。

専門家に質問してみよう