MENU

コピー・切り取り・貼り付け

ノーコードでこんなことできます

コピー/コピー(値貼り付け)/書式コピー/数式コピー/切り取り

行と列の入替可視セルのコピー/1行目を除きコピー/高さや幅のコピー

・指定したシートにコピー/全シートにコピー/複数の指定シートにコピー

新しいシートにコピー/セルの値をシート名に使う

・指定したセルにコピー/最終行の下にコピー/最終行まで複数回コピー

アプリのコード作成画面

アプリのコード作成画面で内容を設定すると、その下の「コードの説明」のVBAコードが作成されます。

f:id:The-Alchemist:20211229114357p:plain

コードの解説

上のアプリのコード作成画面で設定した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_メイン処理を終了します。

 

各種メイン処理

上記例でのメイン処理は、全コピーでしたが、アプリでメイン処理を選択できます。

f:id:The-Alchemist:20220108100424p:plain

 

全コピー

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

 

f:id:The-Alchemist:20220108100747p:plain

行/列入替

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

 

f:id:The-Alchemist:20220108102311p:plain

すべてのシートに貼り付ける

Dim i As Long
For i = 1 To Worksheets.Count
  Worksheets(i).Select
  Range("a1").Select
  Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=False

Next 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

 

 

アプリはこちらから↓↓↓↓