ノーコードでこんなことできます
・全コピー/値コピー(値貼り付け)/書式コピー/数式コピー/切り取り
・行と列の入替/可視セルのコピー/1行目を除きコピー/高さや幅のコピー
・指定したシートにコピー/全シートにコピー/複数の指定シートにコピー
・新しいシートにコピー/セルの値をシート名に使う
・指定したセルにコピー/最終行の下にコピー/最終行まで複数回コピー
アプリのコード作成画面
アプリのコード作成画面で内容を設定すると、その下の「コードの説明」のVBAコードが作成されます。
コードの解説
上のアプリのコード作成画面で設定したVBAコードです。
変数の宣言
Sub デモ_1() 'コピー・切り取り
Dim セル範囲 As String, セル As Range, 右下セル As String
・Sub のあとに表示されるプログラム名は、"デモ_1"です。
・Dimで「変数」を宣言します。
最終行を取得し、セル範囲を決める
Sheets("sheet1").Select
・"sheet1"を選択します。
Range("a1:g1").CurrentRegion.Select
・CurrentRegionで、"a1:g1"セルを含む表全体を選択します。
右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("g1").Column).Address(False, False)
・変数右下セルに、表の右下セルのアドレスを代入します。
セル範囲 = "a1" & ":" & 右下セル
・変数セル範囲に 、"a1" から 右下セルの範囲を代入します。
Range(セル範囲).Select
・セル範囲を選択します。
メイン処理の呼び出し
Call デモ_1_メイン処理(セル範囲)
・Callでメイン処理を呼び出します。
End Sub
・End Subでデモ_1()を終了します。
メイン処理
Sub デモ_1_メイン処理(セル範囲 As String)
Selection.Copy
・メイン処理のプログラム名は、”デモ_1_メイン処理”です。
・選択した”セル範囲”をコピーします。
Sheets("sheet1").Select
Range("j1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False
・"sheet1"の"j1"セルを選択し、貼り付けます。
Application.CutCopyMode = False
End Sub
・コピーモードを解除します。
・End Subで デモ_1_メイン処理を終了します。
各種メイン処理
上記例でのメイン処理は、全コピーでしたが、アプリでメイン処理を選択できます。
全コピー
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False
値コピー(値貼り付け)
Selection.PasteSpecial Paste::=xlPasteValues, Transpose:=False
書式コピー
Selection.PasteSpecial Paste::=xlPasteFormats, Transpose:=false
数式コピー
Selection.PasteSpecial Paste:=xlPasteFormulas, Transpose:=false
切り取り
Selection.Cut
Sheets("sheet1").Select
Range("j1").Select
ActiveSheet.Paste
行/列入替
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=True
可視セル
Selection.SpecialCells(xlCellTypeVisible).Copy
行ごとコピー
Range(セル範囲).EntireRow.Copy
Sheets("sheet1").Select
Range("k1").EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False
全セルをコピー
Cells.Copy
すべてのシートに貼り付ける
Dim i As Long
For i = 1 To Worksheets.Count
Worksheets(i).Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=FalseNext i
複数シート(左端シートと3番目シートは1,3)
Worksheets(Array(1, 3)).Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False
新しいシートに貼り付ける
Worksheets.Add
Range("a1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False
新しいシート名に下のセル値を使う
Worksheets.Add
・・・・
ActiveSheet.Name = Range("a1").Value