No.6ベストアンサー
- 回答日時:
こんばんは。
度々お邪魔してすいません。こんなのはいかがでしょうか?フォームが表示されていないときは、フォーム表示して、メニュー表示しなし。フォームが表示されているときは、通常どおりのメニューとなります。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not UserForm1.Visible Then
UserForm1.Show vbModeless
Cancel = True
End If
End Sub
こんばんは、ママチャリさん。
長い時間お付き合い下さり誠にありがとうございますm(_ _)m
行いたかった最初の方法よりも、使い勝手が良くなりました!
#2のご回答も他のフォームでまるっと使わせて頂きました^^
またご機会がありましたら、よろしくおねがい致します。
No.5
- 回答日時:
私の方は、話が見えなくなってしまいました。
すみません。>1.UserForm1でOptionを数点設定し、セルに対して実行する。
>2.他のセル範囲も同じ、または少しの設定変更なら、UserForm1が表示されている状態で再セル選択し実行する。
個人的には、私は、UserForm では作らないでしょう。もう少し、リボンカスタマイザーを使いこなせれば、リボンのタブの中で処理できると思います。ただ、今のVBAの流行からすると、C#でXLL ファイル作って、アドイン化して使うほうが主流のようです。
>「再入力が面倒だ」です^^;
これについては、Userform に何を入れているか分かりませんが、通常は、Custom Properties に書き込む方法が一番多いですね。今どきは、隠しシートを置いておいて、そこに書き込んでしまうという人もいます。たぶん、通じてはないと思いますが、日本でExcelツールを公開している人は、その二種類に限られるようです。
BeforeRightClick ->Cancel =False のイベントなどは不要だと思います。それ自体のメニューをオン・オフをすれば済む話です。
>メニューそのものへマクロ追加。。。って事でしょうか。
>思いもよりませんでしたが、大変参考になりました。
#1で書いたものが、Class のインスタンス。そして、その次が、コンテクストメニュー・カスタマイズ
安全性は、Class のほうが上なのですが、ここの所評判が良くありません。コンテクストメニュー・カスタマイザーは、まだ、ユーザーが自由に使えるツールが少ないです。
>そのメニューはBOOK単位で表示(アドイン?)されていまうのでしょか?
それぞれのブックに組み込むものですが、アドイン型にすることも可能ですが、ブック自体をXML専用エディタで書き換えてしまいます。
WindFallerさん、こんばんは。
ご助言ありがとうございます。
最初の質問の仕方が悪くお手数お掛けしモヤモヤさせてしまいすみませんでした。
初めて聞く内容が多く、それぞれに質問したい所ですがまたのご機会にお助け頂ければと思います。
沢山の収穫を得る事が出来ました!
ありがとうございました^^
No.4
- 回答日時:
おはようございます。
No.2です。そういうことだったのですね。おっしゃる通り、この方法はモードレスでは使えません。
今回の質問の本質は、「ユーザフォーム表示のトリガ―を何にすべきか」ということだと思います。「もう右クリックには拘らない」というのであれば、以下は読み捨てて下さい。
「モーダルだと、都度、フォームが閉じてしまって、次に開いた時に再入力が必要になるので面倒だ。都度、閉じても良いが、開いた時に前回の内容を引き継ぎたい」ということで良ければ、フォームをアンロードして閉じるのではなく、非表示にすることにより、次に開いた時に前回の内容が引き継がれるはずです。
こんな感じです。
Unload Me
↓
UserForm1.Hide
おはようございます。
モードレスをご確認くださりありがとうございました。
「特定」原因の様に記載した後、パソコンの環境で違うのでは?と思って後悔しておりました。。。
ご察しの通り「右クリックに拘っている」「再入力が面倒だ」です^^;
自分のコードを読み返して、UserForm1.Hideがコメントアウトされていたので、検討の結果自己不満足だった様です。ご教示ありがとうございました。
もう少し悩んでみます。
No.3
- 回答日時:
#1の回答者です。
>頻繁にはないのですが、特に1つのセルに対して、文字の色、大きさ、セルの色、コメントなど一通り修正する事があります。
>右クリック→フォーム表示(のみで閉じるボタン)→コンテキストメニュー表示の流れだと良いかなと考えていました。
どうやらこちらが考えていたものとは違うようですね。
気になるのは、UserFormの働きなのです。おそらくUserFormを使って、セルの処理をするのではないでしょうか。
もしかしたら、以下のようなマクロは代わりになりませんか?
Microsoft 側にも出ているはずですが、
http://www.rondebruin.nl/win/s2/win014.htm
例えば、こんなものです。
コードもオープンになっていますが、コードは、XML で書かれています。
ふつうは、右クリックして、特別メニューが出てきて、既存の組み込み型のツールのボタンを呼び出すだけなのです。
こんばんは。
再検討ありがとうございます。
メニューそのものへマクロ追加。。。って事でしょうか。
思いもよりませんでしたが、大変参考になりました。
そのメニューはBOOK単位で表示(アドイン?)されていまうのでしょか?
質問が質問を呼んでスミマセン。
No.2
- 回答日時:
とりあえず、こんな感じでどうでしょう。
UserForm1のCommandButton1をクリックして閉じた時だけ、メニューが表示されます。
【標準モジュール】
Public myCancel As Boolean
【Sheet1モジュール】
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
myCancel = True
UserForm1.Show
Cancel = myCancel
End Sub
【UserForm1モジュール】
Private Sub CommandButton1_Click()
myCancel = False
Unload Me
End Sub
こんばんは。
ご回答下さりありがとうございます。
#1 WindFallerさんへのお礼の前にご回答頂けていたのですね。。。
お返事が遅れてすみません。
ご提示頂いたコードが希望していた動作です。
・・・ですが、組み込むと動かない...
原因は
UserForm1.Show vbModeless
後出しですみません。下記の使い方をしたいのでモードレスにしています。
1.UserForm1でOptionを数点設定し、セルに対して実行する。
2.他のセル範囲も同じ、または少しの設定変更なら、UserForm1が表示されている状態で再セル選択し実行する。
最初の投稿(質問)に対してBAなので恐縮ですが、これは実現出来ますでしょうか?
No.1
- 回答日時:
こんにちは。
>”Worksheet_BeforeRightClick”でCancel=False
何か、このイベントマクロは生きて使われているのでしょうか?それとも、Context Menu(Cellメニュー)を出さないためにしているのでしょうか。一般的には、RightClickMenu --コンテキストメニューを出さない目的なら、
Application.CommandBars("Cell").Enabled = False
にすれば出てきません。出すなら、その逆の、'True' にすればよいです。
RightClickMenuのイベント側でいじるなら、イベント自体を、Class に移行して、そこで、インスタンスを作れば、どこからでも命令でオン・オフが可能だと思います。
以下は、アプリ全体に及ぼします。(規模を縮小して、ThisWorkbookレベルまでは可能だと思います)
'標準モジュール
'-------------------
Public myClass As Class1
Sub ClassControl_On()
Set myClass = New Class1
Set myClass.xlApp = Excel.Application
End Sub
Sub ClassControl_Off()
Set myClass = New Class1
Set myClass.xlApp = Nothing
End Sub
'Class モジュール/Class1
'-------------------
Public WithEvents xlApp As Excel.Application
Private Sub xlApp_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
'//
こんばんは。
ご回答下さりありがとうございます。
使い方としては、セルをn行m列選択した状態で右クリックしユーザーフォームを表示させます。
フォームにはオプションボタンやラベル、テキストボックスがあり、それらの条件で各セルの内容を変更させます。
この時にコンテキストメニューがちらちら現れるので。。。
出さないようにしたのですが、先ほどのn行m列または、1つのセルに対して大文字にしたり、コメントを挿入したりと後で作業があると、やっぱりコンテキストメニューが欲しくなってしまいました。
頻繁にはないのですが、特に1つのセルに対して、文字の色、大きさ、セルの色、コメントなど一通り修正する事があります。
右クリック→フォーム表示(のみで閉じるボタン)→コンテキストメニュー表示の流れだと良いかなと考えていました。
ご提示いただいたコーディングはまだ試してはいませんが(見ただけでは理解できず・・・。^^;)
早速のご教示ありがとうございました♪
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) [貼り付けオプション]とは? 3 2022/04/17 08:15
- Windows 10 Windows10画像選択時コンテキストメニューで「右に回転」のアクセスキー(T)を変更したい 1 2022/04/17 11:06
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Chrome(クローム) 【 Chrome 】鎖のアイコンの「Copy Link Text」が機能しなくなりました。 1 2023/03/27 10:32
- ノートパソコン Onlineエクセルで右クリックが使えない 1 2023/07/01 22:07
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
テキストボックスでの右クリックのメニューを無効にしたい
Visual Basic(VBA)
-
ExeclVBAユーザーフォームから右クリックでショートカットメニューで困っています。
Visual Basic(VBA)
-
Excel VBAでの右クリックのポップアップメニューの非表示方法は?
Visual Basic(VBA)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
Access VBA コントロールの参照...
-
Hideについて(.NET)
-
VBAでユーザーフォームを再表示...
-
Excel VBAでユーザーフォームだ...
-
コントロールの存在確認
-
Userformを閉じて開く時、一瞬...
-
ACCESSのフォーム、開くんです...
-
VBA(エクセル)のユーザー...
-
モーダルフォームとモードレス...
-
ブックをCloseまたはQuitで閉じ...
-
エクセルVBAのフォームを最...
-
ExcelVBAのユーザーフォームの...
-
Form_Load と Form_Activate の...
-
C#でフォームアプリケーション...
-
アクセス2013 フォームが...
-
vb2008にてDefaultCellStyleが...
-
アニメGifが止まってしまう?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
フォームウィンドウを最前面に...
-
VBA(エクセル)のユーザー...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
'ユーザーフォーム右上隅の[×...
-
MSGBOXのフォント大きさ変更
-
フォームのテキストボックスな...
-
Accessで、一つのフォーム画面...
おすすめ情報