はじめに
Excelで将棋のゲームをつくろうとしたときでした。
私は仕事やブログでExcelを取り扱うことが多いですが、セルをクリックしたときにクリックしたことを検知しそこから処理を開始することがわかりませんでした。
いろいろ調べましたが、まあ最初はうまくいかなかった、、です。
そんな中私が見つけた一番簡単なクリック検知する方法についてご紹介します。
※話が全く変わりますが、Excel でクリック検知を用いて作成した将棋のゲームは下記リンクです。
クリック検知をする方法
Excel の vba 画面を開き、赤枠のプルダウンメニューを開きます。このとき、VBAProject に「標準モジュール」を選択しないようにしてください。
そしてプルダウンメニューから「Worksheet」を選択します。
するとvba の編集画面に「Worksheet_SelectChange」 というプロシージャがでてきます。
これはクリックを検知するためのプロシージャで、右クリックを検知するためには「Worksheet_SelectChange」プロシージャとなっている必要があります。
また「Worksheet_SelectChange」プロシージャの名前は変更できないのでご注意ください。
もしこのプロシージャが表示されない場合は、右のプルダウンメニューから「SelectionChange」を選択してください。
では実際にクリック検知を行ったvba 処理の例をご紹介します。
例えばシートのあるセルをクリックするとメッセージが表示されるプログラムを作成します。
1 2 3 4 5 6 7 8 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim NowCell Set NowCell = ActiveCell MsgBox NowCell.Column End Sub |
これはクリックしたセルの列番号をメッセージで表示させるプログラムです。
これをクリック処理をしたいシートを選択して vba 編集画面 に貼り付けます。画面では「Sheet1」を選択しています。
そしてシート画面に戻り「Sheet1」の好きなセルを選択してください。
下記画面のようにクリックしたセルの列番号が表示されていることが確認できます。
最後に
いかがでしょうか。
今回はただシートのクリックを検知しそのセルの列番号を表示させるプログラムをご紹介しましたが、「Worksheet_SelectChange」プロシージャの中身を好きなように編集することで、さまざまなプログラムを作成することができます。
ぜひこの技を応用させていろいろなものを作成してみてください。ではでは。