エクセルで12枚のシートに同じ表が1つずつ作ってあります。表の中は文字のセルも数式のセルもあります。各シートの同じセルにあるものを選び出して、別の新しいシートにある表の指定した部分に貼り付けたいのです。要するにシート間の串刺しをして別のところに貼り付けたいわけです。例を書きます。
元の表というのは例えば、「シート1はAさんのデータで名前、住所などが入力してある。シート2はBさん、シート3はCさん・・・」で、名前だけの一覧表を新しいシートに作る、ということがしたいのです。質問の意味わかっていただけましたでしょうか?よろしくおねがいします。
No.7ベストアンサー
- 回答日時:
不規則なのは残念ですね。
VBAからはシートを番号で参照できるので簡単なのですが。もし、VBAを使われるのであれば、
Sub GetSheetName()
Dim i As Integer
Dim dist_name As String
Dim sname As String
dist_name = ActiveSheet.Name
For i = 1 To Sheets.Count
sname = Sheets(i).Name
If sname = dist_name Then Exit For
ActiveCell.Offset(i - 1, 0).Value = sname
Next i
End Sub
のような簡単なものを書けば良いと思います。
上のコードは、シート名の列を作りたいシートのセル位置にカーソルを持っていき、マクロを実行すると一番目のシートからカーソルのあるシートまでのシート名のリストを作ります。
だいぶ前にやっぱり同じ様なことをやりたくて作った物です。
では。
せっかく回答をいただいたのに実はVBAについては全くわからず、教えていただいた式をどうしたらいいのかすらわからず・・・という状態でした。で、早速VBA(VB)の勉強をはじめたところです。今は少しだけですがわかります。
がんばります!
悩んでいたことは、シートが8枚と少なかったので、勢いにまかせて”貼り付け”でなんとか通り抜けました。はははつ!
全部自分で理解できるようになったらやってみます。
No.8
- 回答日時:
補足です。
集計という表現は適切ではなかったかも知れませんが、mickjey2さんのようなコードの中にWorksheets(dist_name).Activate
R = cells(Activesheet.Rows.Count, C).End(xlup).Row
Worksheets(dist_name).cells(R+1, C).value = _
Worksheets(i).cells(RR,CC).value
見たいなコードを入れれば可能かと思います。また、「シート間の串刺し」に関して既にヘルプはご覧になりましたか、、、。
注)R、RRは行変数、C,CCは列変数として目的に応じて設定してください。
固定値であれば、定数としてもかまいません。
ありがとうございました。実はVBAについては全くわからず、教えていただいた式をどうしたらいいのかすらわからず・・・という状態でした。で、早速VBA(VB)の勉強をはじめたところです。教えていただいたコードが読める
ようになるのはいったいいつになるのやら・・と思いつつ。
悩んでいたことは、シートが8枚と少なかったので、勢いにまかせて”貼り付け”でなんとか通り抜けました。
No.6
- 回答日時:
もし、私がやるとすると、シート名をSheet1,Sheet2,....と最後に数字をつけていく名前にします。
こうやると、串刺しを入力するシートで、どこかのセルにSheet1と入れて、そのセルをマウスでドラッグ(右下の黒ポチ)すれば以下sheet2, sheet3, ...という一列ができあがります。
これさえすれば、後はIndirect関数で該当のセルを参照すればOKです。
たとえば、A1~A10にシート名が入っていて、各シートの C1セルを参照する場合は、
INDIRECT("'" & A1 & "'" & "!$C$1")
をB1に入れて、後はB2~B10にコピーすればいいわけです。
シート名が規則的じゃない場合は、VBAなどを使わないとちょっと困難かと。
(もしかしたらやり方があるかもしれませんが、ちょっと思いつきません)
なるほど、シート名を規則的なものにかえてしまうんですね。シート名が個人名なのでちょっとつかいにくいかな?と思いましたが、このアイデア何かの時に使わせていただきます。indirect関数 勉強します。
ありがとうございました。
No.5
- 回答日時:
個人の複数のデータがシートごとに入力(定型)されていて、特定の項目(複数でも可)のみを別のシートに集計するということであれば、VBAを使えば簡単にできます。
10だろうが1000シートだろうがあっという間にできます。集計したい項目(セル番地)を変えることも可能ですし、集計先を他のブックやシートの特定の位置にコピーすることも簡単にできます。シート数の分だけ、項目の数だけコンピューターに自動的に集計させることも可能です。新しい個人データが増えた場合や項目数が据えた場合にも対応できます。最終行に自動的に追加していくことも簡単にできると思います。先ずはマクロに基本動作を記録して、不要部分を削除し、ループでまわせばOKです。具体的にシートのどのセルにデータが入っているかがわかれば、サンプルプログラムを作れますので、必要であれば詳細をお聞かせください。この回答への補足
あのー、、集計じゃないんです。bupu4uさんの回答の中にあるように、「(各人毎のシートが全く同じ構造=同じ場所に対応するデータがあったとして。) 新しいシートで、セル毎に参照ブック名を変えられるか?ですよね」・・・これなんです。シートが100枚あったとして、特定の項目(例えば住所)だけを別のシートに100行楽に貼り付けられないか、ということです。100行ひとつひとつに参照セルを打ち込むのは手間ですので。
なんかエクセル詳しそうなので期待してま~す!
ps.いただいた回答おもしろそうですね。今回の質問とは別に、使ってみたいです。でもむずかしそう・・・
No.3
- 回答日時:
補足に対する回答というか提案です。
(各人毎のシートが全く同じ構造=同じ場所に対応するデータがあったとして。)
新しいシートで、セル毎に参照ブック名を変えられるか?ですよね。
これはうまい案が思いつきません。1個入力したセルの数式をコピーして人数分だけ貼り付ける。あとは式を編集してブック名を1個づつ変えていくしかないと思います。このとき数式表示をオンにしておくと少し楽かもしれません。
ただし、名前のシートができたとして、次に住所のシートを作るのだったら簡単ですね。名前のシートをそのままコピーして参照セル名だけ 検索_置き換え するだけですから。
多分すでにご存知のことだと思いますが。m(__)m
シート名をたくさん打つのが大変なので簡単にできる方法がないかな、と思って質問しました。
置換ですね。そうですね・・・なるほど・・・
ありがとうございました。
No.1
- 回答日時:
名前の一覧表のシートのセルにに以下のように入れてください
Sheet2!B1(sheet2の行1列Bを表示する)
行列の表示は設定により違うかもしれませんが
シート名+!+表示元のセル でよいとおもいます。
やり方としては、一覧表のシートでデータを表示するセルを決め
そこを選択してエクセルの数式の編集
(ツールバーの「=」が表示されているところ)で「=}を押し
目的のシートに移動し、表示するデータ(セル)をクリックする。
そして「OK」を押せば一覧にほかのシートのセルの内容が表示されるはずです。
説明が下手ですが、、^^;
この回答への補足
早速の回答ありがとうございます。私にはおっしゃることがよく理解できてないんでしょうか?この方法だとシートが100枚あったらシート名を100回入力するというようにとれるんですが・・・
もしそうなら、コピーアンド貼り付け、またはリンク貼り付けの操作と手間が変わらない気がするんですけど。シート名を1つ入れさえすれば(例えばシート1)、表示先のシートでコピーアンドドラッグするとシート2以降のデータが表示されるんですか?
理解不足ですみません。よろしくおねがいします。
私の質問の仕方が不十分だったようですね。シート名をたくさん打つのが大変なので簡単にできる方法がないかな、と思って質問しました。
でも早速の回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excel 2019 のピボットテーブル...
-
Excelのセルを飛ばして入力する
-
【マクロ】エクセルにかいてあ...
-
Excelのオートフィル
-
Excel初心者です。 詳しい方、...
-
スプレッドシート クエリ関数 1...
-
MOS365 Excel Expert / Excel R...
-
西暦や和暦の表示をyyyymmdd表...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセルの数式で教えてください。
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
エクセルで指定した日付、店舗...
-
【Excel】セル内の時間帯が特定...
-
Excelのグラフ軸について
-
Excel 2019 は、SPILL機能があ...
-
関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報