dポイントプレゼントキャンペーン実施中!

どなたかわかる方教えて頂きたいです。

「参考」のシートにあるH列のテキストを「あ」から順番に、他シート(sheet1,sheet2,sheet3・・・続く)に反映したいです。

添付画像を見て頂きたいです。
「参考」シートのH列のテキスト「あ」から順番に、sheet1の黄色べた塗りのセルにテキストを反映させたいです。
たとえば、sheet2には次の「い」がきてsheet3には「う」を反映させたいです。
調べると、sheet1の黄色ベタセルに「=参考!H2」を入れると反映はされるのですが、この方法だとすべてのシートに1個ずつ数式を入力しないといけません。そうではなく、自動的に「参考」シートのH列を上から順にそれぞれのシートに順番に反映できないでしょうか?

「【エクセル】1のシートの数値を他シートに」の質問画像

A 回答 (7件)

そんな難しくない繰り返し構文なんですけど、なぜエラーになるかはわかりません。


Sub Sample4()
 Dim i As Long '変数の定義 正の整数
 For i = 2 To Worksheets.Count 'iに2を入れる。戻ってきたらi+1
    '右からi番目のシートのE5セルに "=参考!H"に数字iをつなげた数式を入れる
   Worksheets(i).Range("E5").Formula = "=参考!H" & i
 Next i 'For i~まで戻る。iがワークシート数になったら抜ける
End Sub

数式
=INDEX(参考!H2:H1000,LOOKUP(999,(RIGHT(CELL("filename",A1),{1,2,3})*1)))
でも使えるならこれでも良いと思います。
シート名の右から1文字、2文字、3文字を拾ってきて、数値化(1を掛け算できる)
3つの中で桁数の多い数値を拾ってくる
拾ってきた数値をもとに参考!H2:H1000セル範囲から引っ張ってくる
    • good
    • 0
この回答へのお礼

御礼が遅れもうしわけございません。
おかげ様で無事解決致しました!!!長々とお付き合いください誠にありがとうございました。
深謝いたします。

お礼日時:2016/03/14 16:31

No.1,4です。

まだ、閉じられていないようなので。
>sheet1の黄色ベタセルに「=参考!H2」を入れると反映はされるのですが、この方法だとすべてのシートに1個ずつ数式を入力しないといけません。
を実行してみたいと思います。

いちばん左に「参考」シートがあるとして
Sub Sample4()
 Dim i As Long
  For i = 2 To Worksheets.Count
   Worksheets(i).Range("E5").Formula = "=参考!H" & i
 Next i
End Sub
を実行することで、左から2番目以降の右のシートのE5セルに数式を入力していきます。
    • good
    • 0
この回答へのお礼

何度もご回答本当にありがとうございますm(__)m
画像リストシートがありませんのエラーが出る件については答えが分かりました。参考シートが一番左にあるつもりだったのですが、まだその左にシートがあることを見つけられていませんでした・・申し訳ありません。
一番左に参考シートがあるようにして、このコードを入れましたが、今度はインデックスが有効範囲にありません (エラー 9), が出ます。。

お礼日時:2016/03/08 17:33

No.2・3です。



たびたびごめんなさい。
前回の回答は無視してください。勘違いをしていました。

いままでのコードはすべて消去し↓のコードにしてみてください。

Sub Sample3()
Dim i As Long
On Error Resume Next '←追加(エラーがあっても無視する)
With Worksheets(1)
For i = 2 To .Cells(Rows.Count, "H").End(xlUp).Row
Worksheets(i).Range("E5") = .Cells(i, "H")
Next i
End With
End Sub

大前提として元データはSheet見出しの一番左側にある!とします。
これでH2セル以降のデータが
Sheet2のE5セル → Sheet3のE5セル → Sheet4のE5セル・・・
と表示されるはずです。

※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。

どうも失礼しました。m(_ _)m
    • good
    • 1

No.1です


>これはそれぞれのシートに手入力で数式を入れないといけないでしょうか。
それはそうですが、シートを複数選択して入力すれば、一度でそれぞれのシートに入力されます。
作業グループ化
http://hamachan4.exblog.jp/1967053/
解除も[Shift]キー押したままアクティブシートをクリックするだけです
解除を忘れると悲惨な目にあう可能性もあるので忘れずに
    • good
    • 0
この回答へのお礼

お返事ありがとうございます!
グループ化というものがあることをすっかり失念しておりました。。
おかげ様でできました!!お知恵を頂いて感謝の限りです。ありがとうございます!

お礼日時:2016/03/04 18:13

No.2です。



>マクロを実行すると、画像リストシートがありません。とエラーが出ます。

というコトですので、コードはちゃんとコピー&ペーストできていると思われます。
(コード内のシングルクォーテーション以降は「コメント」ですので、あってもなくても問題ありません)

ただ、エラーが出るというコトですが、
前回のコードは「参考」シートのH列に羅列してあるデータのシート名のシートが存在する前提でのコードでしたので、
もしかして、H列のシート名が存在しないのでは?

本来はちゃんとエラー処理をした方が良いのですが、
前回のコードはすべて消去し、↓のコードに変更してみてください。

Sub Sample2()
Dim i As Long
On Error Resume Next '←追加(エラーがあっても無視する)
With Worksheets("参考")
For i = 2 To .Cells(Rows.Count, "H").End(xlUp).Row
Worksheets(i).Range("E5") = .Cells(i, "H")
Next i
End With
End Sub

こんどはどうでしょうか?

※ Sub~ の行から End Sub までをコピー&ペーストします。m(_ _)m
    • good
    • 0
この回答へのお礼

お返事ありがとうございます!2回目のエラーがあっても無視するの方をコピペしましたが、やはり画像リストシートがありませんと表示されます。。全く原因がわかりません>< H列のシートの名前はスクリーンショットにみえてるように、「参考」という名前にしています。

お礼日時:2016/03/04 18:16

こんばんは!



VBAになりますが一例です。
「参考」シートはシート見出しの一番左側に配置してあり、
H列2行目~最終行までのデータと存在するシート数は一致する!という前提です。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long
With Worksheets("参考")
For i = 2 To .Cells(Rows.Count, "H").End(xlUp).Row
Worksheets(i).Range("E5") = .Cells(i, "H")
Next i
End With
End Sub 'この行まで//

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

お忙しい中ご回答ありがとうございます!なんせエクセルの知識がなく、このVBAというものを初めて知りました。書かれていいる通りにしてみたのですが、うまくいきません。。この行からこの行まで、と書かれていますが、コピペする範囲は、

Sub Sample1() '
Dim i As Long
With Worksheets("参考")
For i = 2 To .Cells(Rows.Count, "H").End(xlUp).Row
Worksheets(i).Range("E5") = .Cells(i, "H")
Next i
End With
End Sub '

これであっていますか?
この行からの後の「//」も入れるのでしょうか??
マクロを実行すると、画像リストシートがありません。とエラーが出ます。

お礼日時:2016/03/04 12:41

対象のセルに


=INDEX(参考!H2:H1000,LOOKUP(999,(RIGHT(CELL("filename",A1),{1,2,3})*1)))
シート名の右3桁を拾っています
    • good
    • 0
この回答へのお礼

お忙しい中ご回答ありがとうございます!対象のセルに上記をコピペしたら「参考」のテキストが反映されました!ですが、これはそれぞれのシートに手入力で数式を入れないといけないでしょうか。

お礼日時:2016/03/04 12:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!