Excel VBA 質問スレッド No.35 (解決済)

ファイルを分割した全シートにレイアウトシートの見出し行を挿入したい

投稿者 : 大阪のおっちゃん     投稿日時 : 2017/06/11(Sun) 07:42:54     OS : 未指定     EXCEL : 未指定
マクロが全く分からない初心者です。
ネットから探して、Sheet1からファイルを分割すること
まではできましたが、その全シートに別シート(シート名
:レイアウト)に作成(1行~7行)したものを見出しとし
て挿入したいのですが、どうしてよいのかわかりません。
ご指導をお願いいたします。

'---------------------------------
Sub Grouping()
'---------------------------------
Dim i%



Application.ScreenUpdating = False
With Worksheets(1)
For i = 2 To .Range("B65535").End(xlUp).Row
Call AddLine(i, .Cells(i, 15).Value)
Next
End With
Application.ScreenUpdating = True
End Sub



'---------------------------------
Sub AddLine(lineNum%, sheetName$)
'---------------------------------
Dim lastLine%



Call checkAndMake(sheetName)
lastLine = Worksheets(sheetName).Range("B65535").End(xlUp).Row + 1
Worksheets(1).Rows(lineNum).Copy
Worksheets(sheetName).Rows(lastLine).Insert Shift:=xlDown
End Sub



'---------------------------------
Sub checkAndMake(sheetName$)
'---------------------------------
Dim tmpWS As Worksheet
On Error Resume Next
Set tmpWS = Worksheets(sheetName)
If tmpWS Is Nothing Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = sheetName
Worksheets(1).Rows(1).Copy
Worksheets(sheetName).Rows(1).Insert Shift:=xlDown

'行幅コピー
Worksheets(1)(Worksheets.Count).Rows("1:1").Select
Selection.PasteSpecial Paste:=8 ' xlColumnWidths
Worksheets(1)(Worksheets.Count).Range("A1").Select
End If

On Error GoTo 0


End Sub

[返信 1] Re : ファイルを分割した全シートにレイアウトシートの見出し行を挿入したい
投稿者 : 管理人     投稿日時 : 2017/06/11(Sun) 22:49:57
掲載していただいた AddLineサブルーチンの中に
シート内の行をコピーして、別シートに挿入するコードがありますよね。

> Worksheets(1).Rows(lineNum).Copy
> Worksheets(sheetName).Rows(lastLine).Insert Shift:=xlDown


このコードをコピーして少し変更すればいいと思います。
「レイアウト」シートの1~7行目をコピーして、

Worksheets("レイアウト").Rows("1:7").Copy

コピー行を対象のシートに挿入してください。

Worksheets("xxxシート").Rows(1).Insert Shift:=xlDown

[返信 2] Re : ファイルを分割した全シートにレイアウトシートの見出し行を挿入したい
投稿者 : 大阪のおっちゃん     投稿日時 : 2017/06/12(Mon) 21:50:16
早速ありがとうございます。
分割されたシートすべてを対象としたいのですが、シートの数は変わります。
(分割のキーワードとなるデータが都度変わります。)
("xxxシート")の部分にはどのように入れたらよろしいのでしょうか。
重ね重ねご指導をお願いいたします。


■[返信 1] 管理人さん(2017-06-11 22:49:57)の記事
> 掲載していただいた AddLineサブルーチンの中に
> シート内の行をコピーして、別シートに挿入するコードがありますよね。

> > Worksheets(1).Rows(lineNum).Copy
> > Worksheets(sheetName).Rows(lastLine).Insert Shift:=xlDown


> このコードをコピーして少し変更すればいいと思います。
> 「レイアウト」シートの1~7行目をコピーして、

> Worksheets("レイアウト").Rows("1:7").Copy

> コピー行を対象のシートに挿入してください。

> Worksheets("xxxシート").Rows(1).Insert Shift:=xlDown

[返信 3] Re : ファイルを分割した全シートにレイアウトシートの見出し行を挿入したい
投稿者 : 管理人     投稿日時 : 2017/06/16(Fri) 23:09:53
掲載していただいたマクロを見る限り、
シート名は1シート目の15列目に入っているようなので
それを設定すればいいのではないでしょうか。

あとはレイアウトの見出しを挿入するコードをどこに記述するかによりますが、
AddLineやcheckAndMakeの中に記述するなら
sheetNameにシート名が入っているようなので、
それを使用すればいいと思います。

[返信 4] Re : ファイルを分割した全シートにレイアウトシートの見出し行を挿入したい
投稿者 : 大阪のおっちゃん     投稿日時 : 2017/06/17(Sat) 08:42:52
ありがとうございました。
無事に完成いたしました。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 09:44:56 )

Page
Top