![見出し画像](https://assets.st-note.com/production/uploads/images/34861046/rectangle_large_type_2_1a3b7ae1bc9164cfe183d79720bc16f9.png?width=1200)
7-セルのダブルクリックでマクロ実行(エクセルマクロ)
セルをダブルクリックすると実行されるマクロ
皆さんこんにちは。
前回はフォームの作成についてご紹介しました。
「UserForm1」という名前のフォームを作ってテキストボックスを配置しました。
フォームを開いたときにエクセルシート上のカーソルがある行のA列を読込むように設定済です。(➡ 6-ダブルクリックで全項目確認!)
今回はエクセルシートでA列のセルをダブルクリックするとフォームが開くように設定する方法をご紹介します。
◆目標
「記録」シートのA列のセルをクリックしたらフォームが開く
◆「記録」シートにコードを書く準備
1)VBE画面の左側「プロジェクト」の中でフォームを開きたいシートの名前をダブルクリックします。(Option Explicit の文字はあってもなくても大丈夫です。)
2)
①コードウィンドウの左上(General)と書いてある箇所をクリックして「Worksheet」を選択
②コードウィンドウの右上(Declarations)と書いてある箇所をクリックして「BeforeDoubleClick」を選択
★赤枠のように「Private Sub Worksheet_BeforeDoubleClick ~ 」
というコードが表示されればOKです。
ここにフォームを開くコードを書きます。
◆書くコード
★解説
①If Target.Column = 1 Then
② UserForm1.Show
③End If
>②UserForm1.Show
「.Show」はユーザーフォームを開くメソッドです。
②のコードでフォームを開きます。
ではどういうときに開きたいかというと、
ダブルクリックしたセルがA列にあるときに開きたいです。
Target.Columnの「Target」はダブルクリックしたときのセルを指します。
ですので、
>①If Target.Column = 1 Then
の読み方は「もし(ダブルクリックした)セルの列番号が1なら」です。
◆まとめ
①If Target.Column = 1 Then
② UserForm1.Show
③End If
↓↓
①もし(ダブルクリックした)セルの列番号が1なら
②UserForm1を開く
③If文終わり
★前回(6-ダブルクリックで全項目確認!)とここまでの作業で次の図のように設定したシートのA列のセルをダブルクリックするとフォームが開いてテキストボックスにダブルクリックしたセルの値が入っているはずです。
エクセルシート上でカーソルが点滅している状態だとVBE画面を操作できません。たまに「あれっ!コードが書けないっ」となったときは、エクセルシートで「Enter」ボタンを押すなどして点滅(アクティブな状態)を解除すると操作できるようになります。
今回もここまでご覧いただきありがとうございました。
いろんな画面を開いてコードを書く作業でしたのでややこしかったかもしれません。最初は慣れないですが、業務で使えそうでしたらとても便利ですので何度も使ってみましょうね。
次回はフォームを完成させましょう!
↓↓動画でも確認できます!
この記事が気に入ったらサポートをしてみませんか?