見出し画像

7-セルのダブルクリックでマクロ実行(エクセルマクロ)

セルをダブルクリックすると実行されるマクロ

皆さんこんにちは。
前回はフォームの作成についてご紹介しました。

画像1

「UserForm1」という名前のフォームを作ってテキストボックスを配置しました。
フォームを開いたときにエクセルシート上のカーソルがある行のA列を読込むように設定済です。(➡ 6-ダブルクリックで全項目確認!

今回はエクセルシートでA列のセルをダブルクリックするとフォームが開くように設定する方法をご紹介します。

画像2


◆目標
「記録」シートのA列のセルをクリックしたらフォームが開く

「記録」シートにコードを書く準備

1)VBE画面の左側「プロジェクト」の中でフォームを開きたいシートの名前をダブルクリックします。(Option Explicit の文字はあってもなくても大丈夫です。)

画像3


2)
①コードウィンドウの左上(General)と書いてある箇所をクリックして「Worksheet」を選択
②コードウィンドウの右上(Declarations)と書いてある箇所をクリックして「BeforeDoubleClick」を選択

画像4

★赤枠のように「Private Sub Worksheet_BeforeDoubleClick ~ 」
というコードが表示されればOKです。
ここにフォームを開くコードを書きます。


書くコード

画像5

★解説
①If Target.Column = 1 Then
②  UserForm1.Show
③End If

UserForm1.Show
.Show」はユーザーフォームを開くメソッドです。
②のコードでフォームを開きます。

ではどういうときに開きたいかというと、
ダブルクリックしたセルがA列にあるときに開きたいです。
Target.Columnの「Target」はダブルクリックしたときのセルを指します。

画像6

ですので、
>①If Target.Column = 1 Then
の読み方は「もし(ダブルクリックした)セルの列番号が1なら」です。

◆まとめ

①If Target.Column = 1 Then
②  UserForm1.Show
③End If

↓↓

①もし(ダブルクリックした)セルの列番号が1なら
②UserForm1を開く
③If文終わり

★前回(6-ダブルクリックで全項目確認!)とここまでの作業で次の図のように設定したシートのA列のセルをダブルクリックするとフォームが開いてテキストボックスにダブルクリックしたセルの値が入っているはずです。

画像7


画像8

エクセルシート上でカーソルが点滅している状態だとVBE画面を操作できません。たまに「あれっ!コードが書けないっ」となったときは、エクセルシートで「Enter」ボタンを押すなどして点滅(アクティブな状態)を解除すると操作できるようになります。


今回もここまでご覧いただきありがとうございました。
いろんな画面を開いてコードを書く作業でしたのでややこしかったかもしれません。最初は慣れないですが、業務で使えそうでしたらとても便利ですので何度も使ってみましょうね。

次回はフォームを完成させましょう!

↓↓動画でも確認できます!


いいなと思ったら応援しよう!