Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2986 / 13644 ツリー ←次へ | 前へ→

【64882】クリック座標の取得 フタッチ 10/3/24(水) 14:57 質問[未読]
【64884】Re:クリック座標の取得 Jaka 10/3/24(水) 16:17 発言[未読]
【64893】Re:クリック座標の取得 フタッチ 10/3/25(木) 14:10 お礼[未読]
【64886】Re:クリック座標の取得 mura 10/3/24(水) 17:12 回答[未読]
【64891】Re:クリック座標の取得 フタッチ 10/3/25(木) 12:43 お礼[未読]
【64910】Re:クリック座標の取得 mura 10/3/26(金) 13:02 回答[未読]

【64882】クリック座標の取得
質問  フタッチ  - 10/3/24(水) 14:57 -

引用なし
パスワード
   エクセルのシートの任意の座標をクリックしたところの
座標を取得する方法はありませんでしょうか。
エクセルのvbaで御願い致します。

【64884】Re:クリック座標の取得
発言  Jaka  - 10/3/24(水) 16:17 -

引用なし
パスワード
   ▼フタッチ さん:
>エクセルのシートの任意の座標をクリックしたところの
>座標を取得する方法はありませんでしょうか。
>エクセルのvbaで御願い致します。

この場合の座標って何でしょう?
場合によっては、APIを使ったりして、ポイントをピクセルに変換しないといけなかったりとか、色々あるようですけど。

単純にセルのアドレスだったら、
Activecell.address
selection.address
で、とれます。

また、エクセルに左クリックイベントは無いです。
せいぜい、セルの選択チェンジとか、右クリック、左Wクリックイベントぐらいしかないです。

なども、詳しく書いておいたほうがいいと思います。

【64886】Re:クリック座標の取得
回答  mura  - 10/3/24(水) 17:12 -

引用なし
パスワード
   ▼フタッチ さん:
>エクセルのシートの任意の座標をクリックしたところの
>座標を取得する方法はありませんでしょうか。
>エクセルのvbaで御願い致します。

以下は左クリックした座標(スクリーン座標、Pixcel単位)を取得するサンプルです。
'標準モジュール
Option Explicit
Type POINT
 x As Long
 y As Long
End Type
Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINT) As Long

Public Sub sample1()
 Dim po As POINT
 Do
  If GetAsyncKeyState(vbKeyLButton) Then
   Debug.Print "LButton "; Timer
   GetCursorPos po
   Debug.Print "x="; po.x & " y=" & po.y
  End If
  DoEvents
 Loop Until GetAsyncKeyState(vbKeyEscape)
End Sub

で、何がしたいのでしょうか?
したいことを質問したほうが無駄なレスをせずに済む気がします。

【64891】Re:クリック座標の取得
お礼  フタッチ  - 10/3/25(木) 12:43 -

引用なし
パスワード
   ▼mura さん:
早々のレス有難う御座いました。
御指摘の様に、何をしたいか書いた方がよかった様
です。なにがしたいかと言いますとエクセルのシートに
記述してある図面番号をクリックしたら、cadが起動
し図面を表示するという事をしたいのです。
             敬具
>▼フタッチ さん:
>>エクセルのシートの任意の座標をクリックしたところの
>>座標を取得する方法はありませんでしょうか。
>>エクセルのvbaで御願い致します。
>
>以下は左クリックした座標(スクリーン座標、Pixcel単位)を取得するサンプルです。
>'標準モジュール
>Option Explicit
>Type POINT
> x As Long
> y As Long
>End Type
>Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
>Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINT) As Long
>
>Public Sub sample1()
> Dim po As POINT
> Do
>  If GetAsyncKeyState(vbKeyLButton) Then
>   Debug.Print "LButton "; Timer
>   GetCursorPos po
>   Debug.Print "x="; po.x & " y=" & po.y
>  End If
>  DoEvents
> Loop Until GetAsyncKeyState(vbKeyEscape)
>End Sub
>
>で、何がしたいのでしょうか?
>したいことを質問したほうが無駄なレスをせずに済む気がします。

【64893】Re:クリック座標の取得
お礼  フタッチ  - 10/3/25(木) 14:10 -

引用なし
パスワード
   ▼Jaka さん:
非常にわかりやすい回答有難う御座いました。
            敬具
>▼フタッチ さん:
>>エクセルのシートの任意の座標をクリックしたところの
>>座標を取得する方法はありませんでしょうか。
>>エクセルのvbaで御願い致します。
>
>この場合の座標って何でしょう?
>場合によっては、APIを使ったりして、ポイントをピクセルに変換しないといけなかったりとか、色々あるようですけど。
>
>単純にセルのアドレスだったら、
>Activecell.address
>selection.address
>で、とれます。
>
>また、エクセルに左クリックイベントは無いです。
>せいぜい、セルの選択チェンジとか、右クリック、左Wクリックイベントぐらいしかないです。
>
>なども、詳しく書いておいたほうがいいと思います。

【64910】Re:クリック座標の取得
回答  mura  - 10/3/26(金) 13:02 -

引用なし
パスワード
   >御指摘の様に、何をしたいか書いた方がよかった様
>です。なにがしたいかと言いますとエクセルのシートに
>記述してある図面番号をクリックしたら、cadが起動
>し図面を表示するという事をしたいのです。

で、質問は何ですか?何が分からないのですか?
他のアプリを起動ならShell関数などいろいろあります。
左クリックについては既にレス済みです。

2986 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free