無料アプリで、すぐに、エクセルVBAマクロを作成できます。
例として、「セルのダブルクリックで、そのセルに色を付け、値をリストに書き出す」VBAマクロを作成します。
(ページの末尾に、VBAコード掲載)
事例
A列の商品をダブルクリックすると、セルが黄色になり、D列に商品名と単価を転記します。
できました(^^)/
仕組み
❶ セルに色を付ける処理と、❷ セルの値を、Resizeしてコピーする処理を、
❸ 連続で実行します。❹ さらに、セルのダブルクリックで、❸を自動実行します。
アプリの設定
アプリの設定です。
❶セルに色を付ける処理
アプリのトップページ
⇒▼書式
⇒◇文字の色・セルの色
【ポイント】
■ 「処理の範囲を設定」は、範囲オプションで、「選択範囲」を選びます。
この「選択範囲」とは、画面上のカーソルがあるセルです。
❷セル範囲をResizeして、コピーする処理
アプリのトップページ
⇒▼コピー・貼り付け
⇒◇コピー・切り取り・貼り付け
【ポイント】
■ 「処理の範囲を設定」は、範囲オプションで、「選択範囲」を選びます。
■ ◆セル範囲の変更Resizeで、「,2]を入力し、範囲を2列に広げます。
■ 貼り付け先のセルは、「上のセルの最終行の下」を選びます。
❸連続連続トリガーで実行
アプリ画面の下方の、「連続トリガー」をVBE画面の下方に貼り付けます。
この連続トリガーで、上記の2つのコード(デモ_1、デモ_2)を実行します。
❹ダブルクリックで実行
アプリのトップページ
⇒▼自動実行、入力規則、メッセージ
⇒【ツール】ダブルクリックで、マクロを自動実行する
【ポイント】
■ 「セル範囲」は、ダブルクリックでプログラムを実行する、セルの範囲を指定します。(この範囲以外をダブルクリックしても、マクロは実行されません)
■ マクロ名は、作成済みのマクロ名を入力します。
■ 作成したマクロは、ダブルクリックするシート名の、VBE画面に貼り付けます。
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
❶
Sub デモ_1() '色変更
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
セル範囲 = Selection.Address(False, False)
Range(セル範囲).Select
Call デモ_1_メイン処理(セル範囲, セル)
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
Sub デモ_1_メイン処理(セル範囲 As String, セル As Range)
Selection.Offset(0, 0).Interior.Color = RGB(255, 255, 0)
End Sub
❷
Sub デモ_2() 'コピー・切り取り
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
セル範囲 = Selection.Address(False, False)Range(セル範囲).Select
Call デモ_2_メイン処理(セル範囲)
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
Sub デモ_2_メイン処理(セル範囲 As String)
Selection.Offset(0, 0).Resize(, 2).CopySheets("sheet1").Select
Range("d1").Select
Dim 左端列 As Long, 下端行 As Long, 相手セル As String, 回 As Long
For 回 = 1 To 1
左端列 = ActiveCell.Column
下端行 = Selection.CurrentRegion.Row + Selection.CurrentRegion.Rows.Count - 1
相手セル = Cells(下端行, 左端列).Address(RowAbsolute:=False, ColumnAbsolute:=False)
If Range(相手セル).Value <> "" Then
相手セル = Cells(下端行 + 1, 左端列).Address(RowAbsolute:=False, ColumnAbsolute:=False)
End If
Range(相手セル).Select
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=False
Next 回Application.CutCopyMode = False
End Sub
❸
Sub デモ_連続トリガー()
Call デモ_1
Call デモ_2
End Sub
❹
'【重要】作成したコードは、標準モジュールではなく、対象のシートのシートモジュールに貼り付けます
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a2:a8")) Is Nothing Then
Exit Sub
Cancel = True
Else
Call デモ_連続トリガー
End If
End Sub
マクロを使うメリット
手作業で数分かかる作業が、1秒で終わります。
ぜひ、アプリをご利用ください。