コマンドボタンを『クリック』する時とは別の処理を『Ctrl + クリック』で行いたいのですが、どうコーディングすればいいのでしょうか?

A 回答 (3件)

すみません、サンプルプログラムバグってました。


ifの部分を以下の内容と差し替えてください。

誤)
If (chk <> 1) Then

正)
If ((chk And &H8000) = &H8000) Then
    • good
    • 0
この回答へのお礼

ありがとうございました。
動作確認できました。
ただ、修正コメント(現象,原因)を追加していただけると、
もっと嬉しかったです。

お礼日時:2001/08/20 11:25

Win32APIのGetKeyStateを使って、クリックイベント時にコントロールキーが押されているかを確認する方法があります。



以下、サンプル
Option Explicit
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const VK_CONTROL = &H11

Private Sub Command1_Click()

  Dim chk As Integer
  
  chk = GetKeyState(VK_CONTROL)
  
  If (chk <> 1) Then
    MsgBox "Ctrlキーが押されています"
  Else
    MsgBox "マウスクリックのみでした"
  End If
 

End Sub
    • good
    • 0

Clickイベントでは、Ctrlキーなどの特殊なキーが押されていることを判断できません。



MouseDown,MouseUpイベントを使用すると、
特殊なキーが押されていることを判断できますので、
そちらを使用したらどうでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJQueryでクリック時のタグの親子の関係について

以下のコードのspanをクリックするとspanとdivをクリックしたことになってしまいます。
spanをクリックしてもdivをクリックしたことにしないようにするには
どうすればよいのでしょうか?
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
div {
padding: 20px;
background: #EEE;
}
</style>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
$(function(){
$("div").click(function(){
console.log("click div");
});
$("span").click(function(){
console.log("click span");
});
});
</script>
</head>
<body>
<div>
<span>Click!</span>
</div>
</body>
</html>

以下のコードのspanをクリックするとspanとdivをクリックしたことになってしまいます。
spanをクリックしてもdivをクリックしたことにしないようにするには
どうすればよいのでしょうか?
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
div {
padding: 20px;
background: #EEE;
}
</style>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
$(function(){
$("div").click(function(){
console.log("click div");
});
$("span").click(function(){
consol...続きを読む

Aベストアンサー

ライブラリを使用しない場合は、
divとspanの両方にイベントハンドラを登録した場合、"click span"のあとに"click div"の2つのアラートが順番に出るはずです。

jQueryを使用した場合に"click div"しか出ないのであれば、
jQueryの内部処理にて、click spanが抑制されていると思います。

すみませんがjQueryについてはわかりかねますので、内部処理の抑制を解く方法を知らないのですが、
.click()を呼び出す(イベントハンドラを登録する)順番を逆にするとどうでしょうか。

$(function(){
$("span").click(function(e){
e.stopPropagation();
console.log("click span");
});
$("div").click(function(e){
e.stopPropagation();
console.log("click div");
});
});

その上で、No.2に書かれているような処理の伝播を止める方法を使えばいいと思います。

--------
別の方法として。

<div>にだけイベントハンドラを登録して、その内部でどの要素がクリックされたかを判断してみてはどうでしょうか。

$(function(){
$("div").click(function(){
if( $(this).get(0).nodeName==='SPAN' ){
console.log("click span");
}else{
console.log("click div");
}
});
});

ライブラリを使用しない場合は、
divとspanの両方にイベントハンドラを登録した場合、"click span"のあとに"click div"の2つのアラートが順番に出るはずです。

jQueryを使用した場合に"click div"しか出ないのであれば、
jQueryの内部処理にて、click spanが抑制されていると思います。

すみませんがjQueryについてはわかりかねますので、内部処理の抑制を解く方法を知らないのですが、
.click()を呼び出す(イベントハンドラを登録する)順番を逆にするとどうでしょうか。

$(function(){
$("span").click(fun...続きを読む

Qキー入力を制限しつつ、Ctrl+CやCtrl+Vを活かすには?

数字とバックスペース以外入力できないテキストボックスTextBoxAを作りました。

Private Sub TextBoxA_KeyPress(KeyAscii As Integer)

If KeyAscii <> vbKeyBack Then
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End If

End Sub

と記述しましたが、Ctrl+CやCtrl+Vが効きません。
右クリックでコピー、ペーストはできるのですが、コントロールキー
によるコピペを可能にするにはどうしたらいいでしょうか?

どなたかよろしくお願いします。

Aベストアンサー

If KeyAscii <> vbKeyBack Then
Label1.Caption = KeyAscii
If KeyAscii = 3 Or KeyAscii = 22 Then Exit Sub
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End If

中に
If KeyAscii = 3 Or KeyAscii = 22 Then Exit Sub
の 一行入れるだけでOK!

QワードプレスでjQuery 右から飛び出ているボタンをクリックするとボックスがスライドして出てくるよ

ワードプレスでjQuery

右から飛び出ているボタンをクリックするとボックスがスライドして出てくるようにしたのですが、ワードプレスでjQueryを使う方法が調べてもよくわかりませんでした。
(調べるとたくさん出てくるのですが、その通りにやってもうまく動きません)

この件で何日も悩んでいて本当に困っています。
知識のある方、教えていただけませんか?

どうか宜しくお願いします(TT)

Aベストアンサー

>これをダウンロードして、どこへダウンロードしたデータをアップロードしたらよいのでしょうか?
答えはすべて前回のところにありますよ。
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/css/jquery.bxslider.css">
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.bxslider.min.js"></script>
これです。
なので、私の場合は、テーマの中に「css」と「js」フォルダを作ってその中に入れているので、js/jquery.bxslider.min.jsこのようにしてます。
すべてここで聞くのではなくて、ネットで調べたらたくさんでてきます。
今後自分で作っていくのであれば検索して解決していかないと何もできませんよ。

Qボタンクリック時の動作について質問があります。 ボタンが押された時にwebブラウザを別で表示する場合

ボタンクリック時の動作について質問があります。



ボタンが押された時にwebブラウザを別で表示する場合のプログラムはどののようになりますか?

Aベストアンサー

どの環境のプログラムの ボタンなのか??

概略は
Object を作成して
Set IE = CreateObject("internetExplorer.application")

url = "http://****"

With IE
' With IE
.navigate url
.Visible = True
な感じ・・・

Q1枚の画像をクリックして複数の画像と詳細を入れられるJQueryのLightBoxプラグイン

JQueryのLightBoxプラグインでは、1枚の画像をクリックしたら、他の並べてある画像も見れてしまうと思います。

今回、1枚の画像をクリックして複数の画像と詳細を入れられるLightBoxのプラグインを探しています。

何がしたいかと言いますと、例としましては、一覧の商品画像が並んでいて、その画像をクリックすると、その商品の他の画像も見れて、そこには、簡単な商品情報を写真の下にHTMLで記載できるようなタイプを探しています。

最初は、ポップアップのみ実装して、そこにスライドショーをはめ込み、下に詳細をHTML・CSSで作成していたのですが、どうしてもポップアップしてからのスライドショーがうまく動かず、ブラウザのウィンドウの横幅をずらずと、スライドショーが正常に動くのですが、色々CSSなどをいじってみたのですが、解決しなかったため、LightBoxのプラグインならやりたいことができるかと思い、探しているんですが、詳細情報をHTML・CSSで実装できないものばかりです。

そこで良いJQueryのプラグインを知っている方がいれば教えていただきたいです。

宜しくお願いします。

JQueryのLightBoxプラグインでは、1枚の画像をクリックしたら、他の並べてある画像も見れてしまうと思います。

今回、1枚の画像をクリックして複数の画像と詳細を入れられるLightBoxのプラグインを探しています。

何がしたいかと言いますと、例としましては、一覧の商品画像が並んでいて、その画像をクリックすると、その商品の他の画像も見れて、そこには、簡単な商品情報を写真の下にHTMLで記載できるようなタイプを探しています。

最初は、ポップアップのみ実装して、そこにスライドショーをはめ込み...続きを読む

Aベストアンサー

こんにちは
少し調べてみただけなので、ヒントにでもなれば程度ですが・・・


>一覧の商品画像が並んでいて、その画像をクリックすると、
>その商品の他の画像も見れて、そこには、簡単な商品情報を
>写真の下にHTMLで記載できるようなタイプを探しています。
LightBox系のプラグインは数多くあるので種々様々ですが、画像のグループ化ができて、キャプションを付けられるものが多くあります。
画像グループの一つだけを表示して(残りは非表示)おいて、利用すれば似たようなことが実現可能と思います。
ただし、大抵の場合、キャプション部分はtitle属性やrel属性を利用していると思いますので、テキストになってしまいます。

>ポップアップのみ実装して、そこにスライドショーをはめ込み、
>下に詳細をHTML・CSSで作成していたのですが、どうしても
>ポップアップしてからのスライドショーがうまく動かず~
この方法もありのように思います。
ポップアップの実装はライブラリを利用したのでしょうか?
LightBox系のライブラリの多くは、背景レイヤや表示レイヤなどの構成があるので、先にこれらの要素を作成しておいて、その中に表示する要素の『コピー』を作成して表示しているものが多いと思います。
それなので、最初のHTML要素にスライドショーを設定しても、コピーには反映されないということが起こっていたりしませんか?
表示の際のイベントを取得できるAPIを用意しているプラグインを利用すれば、セット後に表示用の要素に対してスライドショーの初期設定を行うようにすれば実装可能ではないかと想像します。
ただし、この場合は画像ではなくコンテンツを表示できるタイプのプラグインである必要がありますね。

>詳細情報をHTML・CSSで実装できないものばかりです。
上にも述べましたが、画像専用ではなく、コンテンツを表示できるタイプのものを選べばHTML、CSSともに利用可能と思います。
ただし、要素のコピーが表示される可能性があるので、CSSの要素指定には少しだけ注意が必要かもしれません。

>ポップアップした写真をクリックすると、外部リンクへいき、
>矢印をクリックすると次の画像が見れる仕様にできるものを探しています
通常のLightBox系のものでは、対象の指定が
 <a href="one.jpg" title="Image Caption">
  <img src="one_thumb.jpg" alt="">
 </a>
のような構造になっているものが多いと思いますので、これに対してさらにリンクを設定しようとすると、別途工夫が必要になりそうです。
それよりも、インラインコンテンツなどを表示可能なプラグインを利用なさる方が、HTMLでのリンク設定が可能になるので、扱いは楽になりそうですね。

数は少ないかも知れませんが、コンテンツ表示でグループ化できそうなものもあるようです。
配布サイトの雰囲気を見ただけで、実際にはテストしていませんので明言できませんが、例えば・・・
http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/#prettyPhoto
下の方にある「Inline content」の例を見ると、複数のコンテンツをページングしていますので、このような利用方法で実現の可能性があるのではないかと推測します。

あるいは、
http://fancybox.net/home
fancyboxもコンテンツ表示が可能なプラグインですが、一番下の「manual call 」で、manual2の指定では直接に複数の画像を指定しています。
exampleは画像なのですが、対象の指定にインラインコンテンツ(またはjQuery オブジェクトやHTML要素など)を指定できるなら、同様に実現できそうに思えます。
ただし、このタイプの書式の説明がサイト内をざっと見ても見当たらなかったので、残念ながら可能なのかどうかがわかりません。

※ 簡単に調べてみただけなので、とてもお役には立たないと思いますが、少しはご参考にでもなれば・・・

こんにちは
少し調べてみただけなので、ヒントにでもなれば程度ですが・・・


>一覧の商品画像が並んでいて、その画像をクリックすると、
>その商品の他の画像も見れて、そこには、簡単な商品情報を
>写真の下にHTMLで記載できるようなタイプを探しています。
LightBox系のプラグインは数多くあるので種々様々ですが、画像のグループ化ができて、キャプションを付けられるものが多くあります。
画像グループの一つだけを表示して(残りは非表示)おいて、利用すれば似たようなことが実現可能と思います。
ただ...続きを読む

Qコマンドボタンのクリックによるフレーム表示切り替え

Visual Basic 6 に関する質問です。

コマンドボタンをクリックする度に、
画面に配置したフレームの表示/非表示を
切り替える方法を教えていただけないでしょうか?

初歩的な質問で申し訳ございませんが、
よろしくお願いいたします。

Aベストアンサー

今では開発部門(過去の受託先を抱える会社)以外はVB6は使える環境が無いのでは。
其れで回答が出てないのかな。
私は取り合えず、エクセルVBA(そもそもVB6ベースです)でフォームにFrame1を貼り付けてやってみた。
フレームはコントロールですか。どんな名称のものですか。これを質問に書いておく必要があるだろう。
あとフォームに載せるのだろうが。
ーー
トグル的仕組みの質問かと(推測して)思って、参考までに書いてみる。
見当違いなら、この回答全体は無視してください。
下記はエクセルVBAなので、詳細ではこのままは動かないだろう。
Visibleの切り替えが参考になれば。Static st の部分(終了まで、ここのルーチンを抜けても状態を保持する)を参考に。
Private Sub CommandButton1_Click()
Static st
If st = False Then
st = True
Else
st = False
End If
Frame1.Visible = st
End Sub

QjQueryでネスト構造の
  • がクリックされた時にそのidを取得する方法について
  • jQueryでネスト構造になっているリストがクリックされた時に、そのidを取得するプログラムを作っています。
    第一階層は取得できるのですが、第二階層の<li>をクリックすると二重に処理が動いたり、親要素の値が取得されてしまったりしてうまく動きません。

    jQueryでの取得方法を教えていただければと思います。

    [HTML部分]
    <ul id="sample">
    <li class="parent" id="1-1">項目1−1
    <ul class="children">
    <li class="chaild" id="2-1"></i>項目2-1</li>
    <li class="chaild" id="2-2">項目2-2</li>
    <li class="chaild" id="2-3">項目2-3</li>
    </ul>
    </li>
    <li class="parent" id="1-2">項目1−2</li>
    </ul>

    [jQuery部分]
    <script type="text/javascript">
    $(document).on('click', '.parent , . child', function (e) {
    var id = $(this).attr("id");
    alert(id);
    });
    </script>


    onクリックのセレクタの指定をいろいろと試してみましたが、下記のような結果となりうまく動作しません。
    ('.parent , . child')
    親は正しくidが取得できたが、子はすべて1-1となってしまい、正しく取得できない。

    ('li')
    親は正しくidが取得できたが,子は2-1と取得できてから、もう一度1-1と取得され、2回処理が動いてしまっている。

    ('.parent')
    親は正しくidが取得できたが、子は全て1-1と取得される。

    ('#sample>.parent li')
    子要素は正しく取得できるが、親要素が取得できない。

    jQueryでネスト構造になっているリストがクリックされた時に、そのidを取得するプログラムを作っています。
    第一階層は取得できるのですが、第二階層の<li>をクリックすると二重に処理が動いたり、親要素の値が取得されてしまったりしてうまく動きません。

    jQueryでの取得方法を教えていただければと思います。

    [HTML部分]
    <ul id="sample">
    <li class="parent" id="1-1">項目1−1
    <ul class="children">
    <li class="chaild" id="2-1"></i>項目2-1</li>
    <li ...続きを読む

    Aベストアンサー

    クリックしたliだけつかみたいなら、e.stopPropagation()してバブリングを抑止してください
    <script>
    $(document).on('click', 'li', function (e) {
    var id = $(this).prop("id");
    console.log(id);
    e.stopPropagation();
    });
    </script>

    <ul id="sample">
    <li class="parent" id="1-1">項目1-1
    <ul class="children">
    <li class="chaild" id="2-1">項目2-1</li>
    <li class="chaild" id="2-2">項目2-2</li>
    <li class="chaild" id="2-3">項目2-3</li>
    </ul>
    </li>
    <li class="parent" id="1-2">項目1-2</li>
    </ul>

    [jQuery部分]

    Qテキストボックスに書いた複数行のテキストデ-タをコマンドボタンクリック

    テキストボックスに作成したデ-タをコピ-ボタンでコピ-して、OutlookExpress
    などのメ-ラ-に貼り付けるようなコ-ドを書いていますが、コピ-が上手くいかない
    ことが多いので、下のような方法に変えようと思います。

     (1)テキストデ-タを作成(記入)する

     (2)コマンドボタンをクリックする

     (3)自動でメモ帳が起動する

     (4)メモ帳の内容に先ほどのテキストデ-タが貼り付く
        (テキストボックスの内容をメモ帳で開く)

    このようにする方法はあるのでしょうか?
    shellでメモ帳を開くというのは分かるのですが、対象のファイルを
    どのように指定すれば良いのかが分かりません。

    よろしくお願いいたします!!!

    Aベストアンサー

    こんにちは。maruru01です。
    違う方法を。

    いったん一時ファイルとして保存し、Shellでメモ帳で呼び出します。

    memoPath = (メモ帳の起動ファイルのフルパス)
    FilePath = (一時ファイルのフルパス)
    fileNum = FreeFile
    Open FilePath For Output As #fileNum
      Print #fileNum, Text1.Text
    Close #fileNum

    Shell memoPath & " " & FilePath

    では。

    QjQueryで右クリック禁止後に再度有効にする方法

    以下のコードでブラウザ上の右クリックを禁止にしましたが、
    再度再開をしたい場合どのように記述すればよろしいのでしょうか?

    $(document).bind('contextmenu', function(e) { return false; });

    jQueryのverが古いのは気にしないで下さい。
    是非宜しくお願い致します。

    Aベストアンサー

    $(document).unbind('contextmenu');

    もしくは

    var お控えください = true;
    $(document).bind('contextmenu', function(e) { return !お控えください; });
    // 再開時
    お控えください = false;

    Qコマンドボタンをクリックでシートからシートに移動させたい

    sheet1にコマンドボタンをつくり、これをクリックすると
    sheet2に移動するという風にしたいです。
    sheet1は名前が 入力画面
    sheet2は名前が 合計 となっています。
    この時のコードをどう入力すべきか教えていただきたいです。
    Private Sub CommandButton1_Click()と
    End Sub
    の間に何を入力するべきか正確に教えてください。
    よろしくお願いします。

    Aベストアンサー

    シート【合計】をアクティブにするのなら

    Private Sub CommandButton1_Click()
    Worksheets("合計").Activate
    End Sub

    とか?


    人気Q&Aランキング