SSブログ

Excel VBA [その他]

今回は旅行記とかまったく関係なく、個人的覚書です。
会社でコピペしたいのですが、紙に印刷して持って行くしか方法が思いつかず、ちょっと間借りです。メールできたらいいのに…

ど素人がGoogle検索だけを頼りにVBAのコードを書きました。
もし、もっといいコードがあるとお気づきの方いらっしゃったら
アドバイスいただけると幸いです。

★1 何行もあるデータを25行ずつにシートを分割し、1行目にタイトル行を持ってくる

Sub データを分割する最初の行はタイトル行()
Dim シート As Worksheet, 元 As Worksheet '元は元データのあるシート
Dim 総行数 As Long, 回数 As Long, i As Long, 開始行 As Long
Const コピー行 = 25

Set 元 = ActiveSheet '変数の元をActiveSheetにセットする
総行数 = 元.UsedRange.Rows.Count - 1
回数 = Int(総行数 / コピー行) + IIf(総行数 Mod コピー行 > 0, 1, 0)
開始行 = 2
For i = 1 To 回数
Set シート = Sheets.Add
シート.Name = "データ" & 開始行 - 1 & "~" & 開始行 + コピー行 - 2 & "まで"
元.Rows(1).Copy シート.Range("A1")
元.Rows(開始行 & ":" & 開始行 + コピー行 - 1).Copy シート.Range("A2")
Columns("A:F").AutoFit
開始行 = 開始行 + コピー行
Next i
End Sub


★2 コピーした内容(シート1のE2:F4)を別シートの最終列の右側へペースト

Sub 最終列右側に貼付()

Sheets("sheet1").Range("E2:F4").Copy

'シート2の2行目の最終列右に「値」を貼り付け
'IVはエクセルの列数の最大列なのでそんなに使わないなら少ない列でOK「2」は2行目

Sheets("sheet2").Range("IV2").End(xlToLeft).Offset(, 1).PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False

Application.CutCopyMode = False 'コピーモード解除


End Sub



(PR)





nice!(2)  コメント(1) 

nice! 2

コメント 1

かえちゃん

にわちゃんさん
マジレガさん
nice!ありがとうございました。
by かえちゃん (2020-04-04 10:12) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。