• ベストアンサー

sheet1に以降各シートのA1セル値を列挙したい

70枚ほどのシートがあり、そのA1セルに各シートの題名の様な文字列が入っています。 一番最初にインデックスのシートを作り、そのA列に以降のシートの各A1セルの値を並べたいんですが、どんな式を入れれば良いのでしようか? 「インデックス」シートのA1に =Sheet2!$A$1 を入れ下にオートフィルではダメでした。

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

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

(1)シート名がSheet1,Sheet2,・・・のままだとやさしい。   =INDIRECT("Sheet" & ROW() & "!A1")   他に下記(2)の方法で、オートフィルを使ってシート名が作れる。 (2)多分名前を変えていると思う。 その場合は自動だけでは不可能で、余分なシートに、各シート名だけ入力した列を作ります。 A列とします。 そしてB1に =INDIRECT(A1&"!A1") と入れて下方向に式を複写します。 (3)VBAなら簡単です。 下記をVBEの標準モジュールにコピーする。 追加したシートをアクチブにして、実行する。 シートタブの左から順番に、各シートのA1セルの値が、A列に書き込まれます。 Sub test08() For i = 1 To Sheets.Count Cells(i, "A") = Sheets(i).Cells(1, "A") Next i End Sub

popuran121
質問者

お礼

VBAまで、詳しくありがとうございます。

その他の回答 (1)

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

シートの名前は、 左から、インデックス、Sheet2、Sheet3、Sheet4・・・ と続いているのでしょうか? そのようになっているのならば、 「インデックス」シートのA1に =INDIRECT("Sheet" & ROW()+1 & "!A1") と入力し、下にコピーでどうでしょう。

popuran121
質問者

お礼

ありがとうございます。 なかなか旨くいかなかったんですが、オプションの設定が手動になってたりして旨くいかなかったみたいです。 出来ました。

関連するQ&A