[[20170210100815]] 『行の貼り付けのオプションを非表示にする』(ずら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『行の貼り付けのオプションを非表示にする』(ずら)

 初めまして。

 VBAを始めて1週間にも満たない初心者ですが、質問させてください。

 行を右クリックした時に、「貼り付けのオプション」が必ず表示されます。
 これの表示を消したいのですが、VBAでどのような処理をすればよいでしょうか?

 現在はWorkbook_Openメソッド内で

     For Each cmdBra In Application.CommandBars("Row").Controls
        cmdBra.Visible = False
     Next

 で、一度全ての右クリックメニューの表示を消して
 この後に自作の右クリックメニューマクロを追加しています。

 行の右クリックでのみ、貼り付けのオプションを非表示にしたいのですが、ご教授の方よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


そのような方法でアプリがExcelの機能を変えようとしても駄目では?
それよりも、シートの保護機能を利用してはどうでしょう? 行の挿入を抑止するかどうかも指定できますよ。
(???) 2017/02/10(金) 10:39

 ???様

 返信ありがとうございます。
 書き忘れてて申し訳ないのですが、現在シートの保護等はしており
 ユーザが任意で行の挿入等は出来なくなっています。

 貼り付け等できないのに、行の右クリックで「貼り付けのオプション」が表示されるのが
 邪魔だと思い、質問させていただきました。。。

 動作自体には問題が無いので、見た目の問題で非表示にしたいだけです。

 情報が後出しになり申し訳ありません。
(ずら) 2017/02/10(金) 10:50

Rowのコマンドバーの要素を表示させてみると、以下になります。(Captionプロパティ)
 切り取り??(&T)
 コピー??(&C)
 貼り付け??(&P)
 形式を選択して貼り付け(&S)...
 複合表として??貼り付け(&P)
 挿入(&I)
 削除(&D)
 数式と値のクリア(&N)
 セルの書式設定(&F)...
 行の高さ??(&R)...
 非表示??(&H)
 再表示??(&U)
 ハイパーリンクの削除(&R)

この中に、「貼り付けのオプション」が無いのです。ここにあるものならば、ご指摘の方法で消せるのですが。
貼り付けのオプションって、アイコン表示があって、普通のメニューじゃないですよね。Excelの中でも、凝った方法で表示していると思います。なので、ちょっと見たくらいでは手が出せないのですよ。

どーしても消したい!、というのであれば、それはもう初心者の域を超えて、コードハッキングするくらい調査すれば、手があるかも知れません。
(???) 2017/02/10(金) 11:14


 EscかF2ボタンを押したら、貼り付けのオプション消えませんでしたっけ?
 Excel2010ですよね。
(マリオ) 2017/02/10(金) 11:15

 ???様

 >貼り付けのオプションって、アイコン表示があって、普通のメニューじゃないですよね。Excelの中でも、凝った方法で表示していると思います。なので、ちょっと見たくらいでは手が出せないのですよ。

 そうなんですね…。
 ご丁寧にコマンドバーの要素まで教えてくださり、ありがとうございます!

 動作的には問題が無いので、このままにしたいと思います。
 わざわざありがとうございました。

 マリオ様

 ESCまたはF2を押してみましたが、表示は消えないみたいです
 (シートの保護の有無に関わらず)
(ずら) 2017/02/10(金) 11:27

 マリオさんの言っているのは「エクセルのオプションのコンテンツを張り付けるときに
 「貼り付けオプション」ボタンを表示する」にチェックを入れた場合に貼り付け後に
 表示される貼り付けのオプションボタンではないか?
(ねむねむ) 2017/02/10(金) 11:35

 マリオさんが書かれているのは、貼り付けた後に出てくるボタン(スマートタグ)ですよね。

 今回質問されているのは、セル上で右クリックした時のメニューに出る貼付のオプションのことなので
 キー操作ではできないんです。

 あーねむねむさんとかぶり…
(コナミ) 2017/02/10(金) 11:40

 >ずら さん
 私には、手に負えません。サッサッーー

 >コナミさん、ねむねむさん
 ん〜。よ〜わからんので、スルーします。
(マリオ) 2017/02/10(金) 13:00

蛇足ながら、もうちょっとだけ追ってみた結果なぞ。

隠しメニューにでも何か無いかなぁ?、と、行のコマンドバーに限らず、以下のコードでIDとキャプションを一覧してみましたが…、「貼り付けのオプション」は無いですねぇ。 意識して操作してみると、この項目だけマウスカーソルを合わせても選択状態にならないので、こんな単純な実装じゃないだろう、とは思いましたが。
(ちなみに、「形式を選択して貼り付け」が21437番なので、かなり後になって追加された機能だろうと思われます)

 Sub test()
    Dim i As Long
    Dim iR As Long
    Dim cw As String

    On Error Resume Next
    For i = 1 To 30000
        Err.Clear
        cw = Application.CommandBars.FindControl(ID:=i).Caption
        If Err.Number = 0 Then
            iR = iR + 1
            Cells(iR, "A").Value = i
            Cells(iR, "B").Value = cw
        End If
    Next i
    On Error GoTo 0
 End Sub

ググってもみましたが、この項目に手を出したやり取りは見つかりませんでした。諦めるのが一番ですねぇ。
(???) 2017/02/10(金) 13:32


ちなみに、強硬案としては、Application.CommandBars("row").Enabled = False としてしまえば、行を選択しての一切のメニューが出なくなります。
同様に、"cell" と "column" のメニューも False にすると右クリックメニューが使えなくなりますが、そこまで不便にしても良いのやら…。
(???) 2017/02/10(金) 13:41

 ???様

 ググっても貼り付けのオプションボタン
 (多分マリオ様が消せるとおっしゃった貼り付けのオプション)の非表示の仕方しか
 出ませんね…。

 >行を選択しての一切のメニューが出なくなります。 

 これをしちゃうと、自作マクロも行の右クリックに追加しても意味ないですよね…

 表示されていてら絶対に困る!という訳ではないので
 素直にあきらめたいと思います。

 皆様方、ありがとうございました。
(ずら) 2017/02/10(金) 13:53

足がいっぱいある蛇…。

右クリックメニューを全部殺しても、右クリックのイベントは拾えますから、ユーザーフォームに処理を書く、という手もあります。

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    UserForm1.Show vbModal
 End Sub

タイトルバーは消したいとか、凝り始めると結構大変ですので、素直に諦めるのが一番ですけどね。
(???) 2017/02/10(金) 14:59


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.