• ベストアンサー

Excelについて

複数枚のシートがあって、ある1つのセルを串刺しにして 範囲名をつけます。例えば、45枚のシートがあって各シートのA7セルを範囲='1:45'!$A$7のようになまえをつけます。 そのときに、この範囲名を使ってある特定のシートのA'セルの値を取得することは出来るんでしょうか。 つまり、同一のシートならば範囲=A1:A10としておいて、 例えばindex(範囲,1,1)とすればA1セルの値を取得できますが、このようなことが可能なのかどうかを教えて欲しいのです。下手な説明でわかりにくいかも知れませんが、 よろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 INDEX関数ではシートをまたぐことが出来ないようです。 シート名が「1」~「45」と規則的なら、A1に「1」などと入力するとして、 =INDIRECT(A1 & "!A7") とするのが簡単かも知れません。

shinchan_k
質問者

お礼

ありがとうございました。 やはり、無理か。 indexを使わなくてもいいんですけどね。 参考にさせていただきます。

その他の回答 (2)

  • jukate
  • ベストアンサー率25% (14/56)
回答No.3

'マクロができるなら、これはどうですか? Sub Kusi() Dim TempNum, TempNum2 As Integer Dim StrInput As String TempNum = InputBox("コピーしたいシート数") StrInput = InputBox("セルのインデックス") Sheet1.Activate Sheet1.Range(StrInput).Select Dim a, b As Integer a = Application.ActiveCell.Row b = Application.ActiveCell.Column TempNum2 = TempNum - 1 Dim Str() As String ReDim Str(TempNum2) Dim n As Integer For n = 1 To TempNum Application.Worksheets(n).Activate Str(n - 1) = Application.ActiveSheet.Cells(a, b) Next n For n = 1 To TempNum Sheet1.Cells(n, 1) = Str(n - 1) Next n Sheet1.Activate End Sub

shinchan_k
質問者

お礼

ありがとうございました。 うーむ。関数でだめならやはりVBAになるか。 VBAを使わずに何とかならないものかと考えていたもので・・・ 参考にさせていただきます。

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

「3-Dセル参照の名前」として、解説書に説明があります。 Sheet1を年間集計用シートとし、Sheet2からSheet13を 各月の同一フォーム(形式・データ配置)のシートとします。 (1)Sheet1のセルB5を考えます。B5を選択。 (2)挿入-名前-定義をクリック。 (3)「名前」ボックスに、「年各月」と入力し、「参照範囲」ボックスに=Sheet2:Sheet13!B5と入力。 (4)エンタキーを押す。 これで「3次元」と言う名前は関数の引数として使えます。=SUM(年各月)のように。 このことのご質問でしょうか。 3D集計 http://og3.homelinux.com/~mogumi/3d/3d01.htm 関連 http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B417536 http://homepage1.nifty.com/kenzo30/ex_kisotoku/ex_ks_tokubetu8.htm#名前の利用・表見出し(ラベル) 其の他「セル 名前 定義」でWEB照会してみてください。

shinchan_k
質問者

お礼

ありがとうございました。 名前の定義の仕方はわかってるんですが、 その中から自由に値を取れるかどうかが分からなかったのです。