フォルダ作成マクロ ができるまで その2
はじめに
前回、
vba-belle-equipe.hatenablog.com
フォルダをたくさん作ることができるようになったわけですが、VBEから実行するのは手間です。
もうちょっと使いやすくしてみましょう。
ダブルクリックで実行させる
画面は前回と同じです。
ボタンを追加してもいいんですが、今回は「セルをダブルクリックで実行」にしてみます。
シートモジュール
ダブルクリックでイベントを起こすためには、標準モジュールではなく
シートモジュールに書きます。
単純に標準モジュールの「makeFolders」を実行したい時は
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Call makeFolders End Sub
です。
ちなみに「Worksheet」「BeforeDoubleClick」を選択すると、自動的に作成されますので、「Call makeFolders」を中に書くだけです。*1
これで、どこをダブルクリックしても実行されるようになりました。
使ってみる
実行されます。
セルが編集モードになってしまう
が、実行後、セルの中にカーソルが表示されるようになるのが気になります。
「vba ダブルクリックイベント 編集モード」あたりで検索すると
Cancel = True
で解決することがわかります。
1列目だけに制限したい
ダブルクリックイベントは便利です。
が、何の気なしにしまう場合もありますので、イベントが起こる範囲は制限したほうが無難です。
今回は、1列目でダブルクリックした場合だけ実行するようにしましょう。
改良案
以上を踏まえ、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column <> 1 Then Exit Sub End If Cancel = True Call makeFolders End Sub
こんなところでしょうか。
まとめ
ダブルクリックイベントは便利です。
が、イベントが起こることをユーザーが知らないと大変なことにもなりかねませんので、使いどころには注意しましょう。
*1:画面はExcel2002のものです