VBAマクロを自動作成する無料アプリ

VBAコードの知識不要😊ChatGPTで機能を追加

MENU

【ノーコード】セルのダブルクリックで、複数の処理を実行する

エクセルVBAマクロを自動作成する無料アプリです。

例として「セルのダブルクリックで、そのセルに色を付け、値をリストに書き出す」VBAマクロを作成します。

事例 A列の商品をダブルクリックで、セルを黄色にし、D列に商品名と単価を転記する

できました(^^)/

 

仕組み

❶ セルに色を付ける処理と、❷ セルの値を、Resizeしてコピーする処理を、

❸ 連続で実行します。

❹ さらに、セルのダブルクリックで、❸を自動実行します。

アプリの設定

❶セルに色を付ける処理

アプリのトップページ

 ⇒▼書式

 ⇒◇文字の色・セルの色

【ポイント】

■ 「処理の範囲を設定」は、範囲オプションで、「選択範囲」を選びます。

  この「選択範囲」とは、画面上のカーソルがあるセルです。

❷セル範囲をResizeして、コピーする処理

アプリのトップページ

 ⇒▼コピー・貼り付け

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

【ポイント】

 「処理の範囲を設定」は、範囲オプションで、「選択範囲」を選びます。

■ セル範囲の変更Resizeで、「,2]を入力し、範囲を2列に広げます。

■ 貼り付け先のセルは、「上のセルの最終行の下」を選びます。

❸連続連続トリガーで実行

アプリ画面の下方の、「連続トリガー」をVBE画面の下方に貼り付けます。

この連続トリガーで、上記の2つのコード(デモ_1、デモ_2)を実行します。

❹ダブルクリックで実行

アプリのトップページ

 ⇒▼自動実行、入力規則、メッセージ

 ⇒【ツール】ダブルクリックで、マクロを自動実行する

【ポイント】

 「セル範囲」は、ダブルクリックでプログラムを実行する、セルの範囲を指定します。(この範囲以外をダブルクリックしても、マクロは実行されません)

 マクロ名は、作成済みのマクロ名を入力します。

 作成したマクロは、ダブルクリックするシート名の、VBE画面に貼り付けます。

表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

 

VBAコードを見る

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).Copy

Sheets("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

 

ChatGPTで修正

あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!

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