プロが教える店舗&オフィスのセキュリティ対策術

初心者なので詳しく教えてもらえると助かります。
Sheet1のセルC18~C34まで任意の文字を打ち込みます。
これをSheet2にSheet1のC18の文字を、Sheet3にSheet1のC19の文字を、、、、
と言う感じでC34までの文字をSheet18まで自動入力するにはどうしたらいいですか?

式をコピペして何処へ貼り付けたらいいのか教えてもらえるとありがたいです。

A 回答 (5件)

No.3です。



>エラーは出ないのですが、文字を打ち込んでも何も変わらないのですが、ほかに何か原因があるのでしょうか?

ん?
ご自身でマクロを実行する必要があります。

念のために
① Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
前回のコードをコピー&ペーストしてください。
( Sub Sample1() ~ End Sub まで )

② Excel画面に戻り(VBE画面を閉じて)マクロを実行してください。
Alt+F8キー → マクロ → マクロ実行です。

これで何とかならないでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

Yahoo知恵袋等で色々聞きましたが、どれも何らかのエラーばかり出て
思うことが出来ませんでした。今やっと出来てものすごく助かりました。
ありがとうございました。

お礼日時:2017/04/16 19:05

ご質問の通りにやってみたのが、test1のコードになります。


この場合、「Sheet○」形式のシート名でないとエラーとなります。

test2のコードは、左から2番目のシートから順番にC列の値にシート名を変更します。
これだとどんなシート名でもエラーは出ないと思います。

Sub test1()
Dim i As Long
For i = 2 To 18
Worksheets("Sheet" & i).Name = Cells(i + 16, "C").Value
Next i
End Sub

Sub test2()
Dim i As Long
For i = 2 To 18
Worksheets(i).Name = Cells(i + 16, "C").Value
Next i
End Sub
    • good
    • 0

こんにちは!



「Sheet1」C18~C34セルの値を各シートのシート名にすればよいのですね?
VBAになりますが一例です。

標準モジュールにしてください。

Sub Sample1()
Dim i As Long, k As Long, myFlg As Boolean
With Worksheets("Sheet1")
For i = 18 To 34
For k = 2 To Worksheets.Count
If Worksheets(k).Name = .Cells(i, "C") Then
myFlg = True
MsgBox "「" & .Cells(i, "C") & "」というシートは存在します。"
.Activate
.Cells(i, "C").Select
Exit Sub
End If
Next k
If myFlg = False Then
If Worksheets.Count < i - 16 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
End If
Worksheets(i - 16).Name = .Cells(i, "C")
End If
Next i
End With
End Sub

※ 少しだけエラー処理を加えていますので
煩わしいコトがあるかもしれません。m(_ _)m
    • good
    • 1
この回答へのお礼

tom04さん お忙しい中ありがとうございます。
エラーは出ないのですが、文字を打ち込んでも何も変わらないのですが、ほかに何か原因があるのでしょうか?

お礼日時:2017/04/16 12:00

ああ、Sheet2に一度


  =Sheet1!C18
と入力して、縦方向にコピーすると「C18」の部分を変えられるので、これを「数式バーの上でコピー」してほかのシートに貼り付けたり、
複数シートを選択した状態でセルを縦方向にコピー(複製)して必要なセルへ「移動」させればよいかもです。

どのみち手間はかかります。
    • good
    • 0

んー…


 =Sheet1!C18
これをコピーしてSheet2へ貼り付け。
Sheet3以降は貼り付けた後、この「C18」の部分を修正。
これが確実。
貼り付けるセル番地がSheet2以降同じならば、Sheet2からSheet18までを選択してSheet2に貼り付ければSheet18まで
 =Sheet1!C18
と貼り付けられます。
その後、一度Sheet1を選択して複数のシート選択を解除した後に各シートで修正すれば、ちょっとは楽ができます。

CELL関数を使えば一発なんですが、Sheet名を後から変えるなどの操作を行うと正常に動作しなくなのでお勧めしません。
    • good
    • 0
この回答へのお礼

本当ですね。仕事で頼まれたので作ろうとしたのですが、後からSheet名を変えるとエラーの元になりますね。

お礼日時:2017/04/16 19:08

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