初心者なので詳しく教えてもらえると助かります。
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で質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QExcel2013 VBA sheet1とsheet2のデータを合成してsheet3を作るには

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 C3;うた

A4;2  B4;読書 C4;どくしょ
A5;空白 B5;野球 C5;やきゅう


A6;3 B6;映画鑑賞 C6;えいがかんしょう

A7;4  B7;釣り C7;つり
A8;空白 B8;踊り C8;おどり
A9;空白 B9;歌 C9;うた

③sheet3を新に作成して

A1;1 B1;阿部 C1;あべ
A2;空白  B2;釣り C2;つり
A3;空白 B3;踊り C3;おどり
A4;空白 B4;歌 C4;うた
A5;空白 B5;阿部 C5;あべ

A6;2 B6;佐藤 C6;さとう
A7;空白 B7;読書 C7;どくしょ
A8;空白 B8;野球 C8;やきゅう
A9;空白 B9;佐藤 C9;さとう

A10;3 B10;山名 C10;やまな
A11;空白 B11;映画鑑賞 C11;えいがかんしょう
A12;空白 B12;山名 C12;やまな

A13;4 B13;山本 C13;やまもと
A14;空白  B14;釣り C14;つり
A15;空白 B15;踊り C15;おどり
A16;空白 B16;歌 C16;うた
A17;空白 B17;山本 C17;やまもと



のようにしたいです。

実際、データは、sheet1は419列、sheet2は2563列あります。

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 ...続きを読む

Aベストアンサー

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = wS2.Cells(Rows.Count, "B").End(xlUp).Row
Range(wS2.Cells(2, "D"), wS2.Cells(lastRow, "D")).Formula = "=IF(A2="""",D1,A2)"
For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
With .Cells(Rows.Count, "B").End(xlUp).Offset(1)
.Value = wS1.Cells(i, "B")
.Offset(, -1) = wS1.Cells(i, "A")
.Offset(, 1) = wS1.Cells(i, "C")
End With
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
myCnt = WorksheetFunction.CountIf(wS2.Range("D:D"), wS1.Cells(i, "A"))
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(myCnt, 2).Value = _
c.Offset(, 1).Resize(myCnt, 2).Value
End If
'▼
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(, 2).Value = _
wS1.Cells(i, "B").Resize(, 2).Value
'▲
Next i
.Rows(1).Delete
wS2.Rows(1).Delete
wS2.Range("D:D").Delete
Application.ScreenUpdating = True
.Activate
End With
MsgBox "完了"
End Sub

※ コード内の▼から▲までがもう一度Sheet1のデータを表示させているコードです。
細かい検証はしていませんが、
こんな感じではどうでしょうか?m(_ _)m

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = ...続きを読む

Qsheet1(1月)からsheet12(12月)をsheet13(H17年度)に集計したい

sheet1(1月)
A   B  C
1 得意先  銀行  金額
2 aa社 xx 50
3 cc店 yy 30
4 ee社 xx 20

sheet2(2月)
  A B C
1 bb zz 50
2 ee xx 30
3 cc yy 50
4 dd ww 30

目的のsheet
sheet13(H17年度)
A     B    C    D
1 得意先  1月   2月   3月
2 aa社   50  
3 bb社 50
4 cc社 30 50
5 dd社 30
6 ee社 20 30

Aベストアンサー

元ファイルをシート分けせずに、月フィールドを作って整理し
ピポットテーブルを使えば一発です。

得意先銀行金額月
aaxx501月
ccyy301月
eexx201月
bbzz502月
eexx302月
ccyy502月
ddww302月

としておき、ピポットテーブルで
行:得意先、列:月、データ:合計/金額とすればよいでしょう

Q質問番号C1 C2 C3 C4 C5 C6 C7 C8 C9 平均

質問番号C1 C2 C3 C4 C5 C6 C7 C8 C9 平均
       1 1 2 3 4 5 3 8 7 5 4.2
エクセル2003でこのような質問表を作っています。
条件付書式で、一番大きい数と、一番小さい数に色をつけたいのですが、
そのような条件が見当たりません。
どうすればいいのでしょうか?
また、2007ならば可能なのでしょうか?

Aベストアンサー

条件付書式で、
「セルの値が」―「次の値に等しい」―「=MIN($C$1:$C$9)」
で、「書式設定」で色選択、
「追加」
「セルの値が」―「次の値に等しい」―「=MAX($C$1:$C$9)」
で、「書式設定」で色選択、
「OK」

QEXCELでSheet2にある名前がSheet1のどこにあるのかすぐ分かる方法

EXCELでSheet2に馬の名前があります。
例えば、クイーンズルビー
Sheet1にも同じ名前がある場合
どこにあるのかSheet2のクイーンズルビー
という名前をクリックして
Sheet1のクイーンズルビーのある所にすぐ移動する方法はありますでしょうか?Sheet1のどこかにあるのは分かっているのですが、どこにあるのかは分かりません。今の所ctrl+fで入力して探しています。列の位置はCと分かっているのですが、行がどこか分からない状態です。
バージョンはEXCEL2000です。
よろしくお願いします。

Aベストアンサー

ファイル名が「Book1.xls」とします。
「Sheet2」のA3セルに「クイーンズルビー」が入力されているとします。
B3セルに「=HYPERLINK("[Book1.xls]Sheet1!$C$"&MATCH(A3,Sheet1!C:C,0),A3)」を入力します。
B3セルをクリックする事により、移動します。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報