VBA別館・Python別館

64550

VBA セルをボタンにする(完 おまけ) - Tak

2018/09/17 (Mon) 09:18:58

sheet上のセルをダブルクリックすると、処理が出来るようにします。 セルをコマンドボタン代わりにします。


① セルA1で実験

・開発ーVBと行き

・sheet1-コードの表示

・worksheet-BeforeDoubleClickを選択

・すると次のようなcode書込みの準備が出てきます。


Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   ここへcodeを書く
End Sub



Re: VBA セルをコマンドボタンにする - Tak

2018/09/17 (Mon) 19:51:22

② セルA1をボタンにします。

・codeを書く

・セルに適切なタイトルを付ける。 今回は「今日は何日?」と付けました。

・セルを「セルの書式設定」で好きな色・パターン・塗りつぶし効果を選ぶ

------------------------

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim adrs

 adrs = Target.Address

 Select Case adrs
  Case "$A$1"

  ActiveCell.Offset(0, 1).Select
  Selection = Now
 End Select

End Sub

-----------------------

・セルA1をダブルクリックすると、セルB1に今の日付・時刻を表示する「=NOW」と書く。

・ダブルクリックすると、セルB1に日付が表示される。  コマンドボタンと同様な働きをしましたね。

codeの説明は次回。

Re: VBA セルをコマンドボタンにする - Tak

2018/09/18 (Tue) 08:21:15

③ セルボタンのコードの説明

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   <--SingleClickではNGだった。

Dim adrs <--セルの変数宣言

 adrs = Target.Address <--アドレス使うときの決まり文句

 Select Case adrs <--Select Case ~End Selectはif~と同じだが、Select構文を使うのが良い(if文ではNGだった)

  Case "$A$1" <--セルA1の場合 ($を必ずつけること)

  ActiveCell.Offset(0, 1).Select <--A1の右隣の意味 
  Selection = Now <--現在の時刻を表示する
 End Select

End Sub

--------------------------

以上がcodeの説明です。

Re: VBA セルをコマンドボタンにする - Tak

2018/09/18 (Tue) 19:52:23

④ 希望のホームページにすぐ行ける

例として二三上げました。 最後のURLは僕の「カメラ別館」へ行けます。

codeは次の通りです。 もう分かりますね。

---------------------

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim adrs

adrs = Target.Address

Select Case adrs
Case "$A$1"
ActiveCell.Offset(0, 1).Select
Selection = Now

Case "$A$2"
Shell "EXPLORER.EXE https://www.nikkei.com/"

Case "$A$3"
Shell "EXPLORER.EXE https://www.sankei.com/"

Case "$A$4"
Shell "EXPLORER.EXE https://kumasan2016.bbs.fc2.com/"

End Select

End Sub

---------------------------

Shell "EXPLORER.EXE ttps://www.nikkei.com/"

これはMSのブラウザーを呼び出す規定語ですので変えないでください。

自分で使うものなので、別にセルを着飾ることは有りません。 アクセスしたいURLが沢山あるようなら、列をジャンル別にして行にこのcodeを書けば、迷わずに希望のサイトへ行けますよ。

この稿完了。

Re: VBA セルをコマンドボタンにする(完) - Tak

2018/09/20 (Thu) 08:47:10

⑤ おまけ

MSのブラウザーの代わりに、GoogleのChromeを使いたい人のためにcodeを載せておきます。

-----------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim URL As Variant
Set URL = CreateObject("WScript.Shell")

Dim adrs
adrs = Target.Address

Select Case adrs
Case "$A$1"
ActiveCell.Offset(0, 1).Select
Selection = Now

Case "$A$2"
URL.Run ("chrome.exe https://www.nikkei.com/")

Case "$A$3"
URL.Run ("chrome.exe https://www.sankei.com/")

Case "$A$4"
URL.Run ("chrome.exe https://kumasan2016.bbs.fc2.com/")

End Select

End Sub

---------------------------
上記の様に以下を追加すればOKです。

Dim URL As Variant
Set URL = CreateObject("WScript.Shell")

・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・

URL.Run ("chrome.exe https://kumasan2016.bbs.fc2.com/")

・・・・・・・・・・・・・・・・・

Good luck!

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.