A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
小生素人で、#1でおしゃっているレベルのことに及びませんが、
小生も色んなエクセルの操作をイベントとして捉えてくれると良いなと思いますが、現状では十分できません。
(例)列・行の挿入・削除、列幅の拡大・縮小、書式の変更
シート削除
現状のイベントはマウスの動作ー目的操作単位ー業務のうち、マウスの操作が中心のように思います(特にコントロール類は)。
またシートのセルのエリアに関したものが多い。ツールバー部・メニューバー部などはない。
WorkbookのOpenなどあるのに、と思います。
ここにはMSの下した選択の問題があり、個人的には、その体系が見えない(どういう風に体系的に選んだか)。
エクセルのInsideな構成とか処理方式を知らないとダメなので
そういうことを議論することは普通の人には不可能でしょうが。
ーー
普通のVBAの知識ではそれは不可能でしょう。
そのレベルを越えて、クラスの扱いや、内容的にAPIのレベルまで踏み込んで理解しないと無理ではないかと思います。
それとか下記URLの回答のように実質は同じ効果を挙げる他の方法を検討するとか。例えばメニューの一項目を使用できないようにする・削除するとか。
(例 下記)
ーー
多分質問の操作を禁止したいというようなことかと思いますが、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2252522に似た質問あり
ました。
禁止も、上記で言った、個別の目的(が決まった)操作レベルの
禁止の仕組みは無い。
現状あるのはシートの保護程度です。
開発者ー使用者という対立レベルで起こりそうな点からの問題発想が
あまり体系的に無いよう。
ーーー
つまらぬ感想ばかり述べてしまったので、お詫びに、編集の削除をEnabledするコードを載せます。
Sub Sample()
Dim ct As Object
Dim ct1 As Object
Application.ScreenUpdating = False
For Each ct In CommandBars("Worksheet menu bar").Controls
' MsgBox ct.Caption
If ct.Caption = "編集(&E)" Then
For Each ct1 In ct.Controls
'MsgBox ct1.Caption
If ct1.Caption = "削除(&D)..." Then
MsgBox ct1.Caption & "Enabled"
ct1.Enabled = True 'False
End If
Next
End If
Next
Application.ScreenUpdating = True
End Sub
回答ありがとうございます。お礼が遅くなって申し訳有りません。
No.1の方へも書きましたが、いちおう目的を達成することができました。
貴重なご意見ありがとうございます。
No.1
- 回答日時:
こんにちは。
ご質問の意図が明確ではありませんが、ふたつの方法があります。
ひとつは、自分でイベントを作る方法です。ただし、他のマクロが動かなくなることがあります。元来は、こちらのほうが主なのですが、私は、ほとんどやったことがありません。PCの負担が多くなるからです。
もうひとつは、クラスで、行・列の挿入・削除のボタンにインスタンスを設け、クリックでイベントにすることですね。
少しややこしくて
CommandBars("Row")
CommandBars("Worksheet Menu Bar")
この中のControls に、ボタンがあります。それと、行全体・列全体を選択した時に出てくる特殊なメニューがあるはずです。
これらを全部、クラスとして保持(=変数)していれば、制御できます。
しかし、内部で、Enabled プロパティを切り替えられているので、機能を完全に無効にすることは不可能ですから、無効にする場合、コマンドメニューの場合は、以下のようにして、見えないようにしないと、無効に出来ません。他のメニューは、Enabled プロパティでも可能です。
CommandBars.FindControl(, 297).Visible = False
CommandBars.FindControl(, 296).Visible = False
分かりにくいようでしたら、またお聞きください。
以前のように、回答が出ないから、すぐに閉めてしまうというようなことはしないでくださいね。特に、今回のようなプログラム上の一般論というのは、VBAの中でも難しい質問だと思います。他の掲示板で、ためしにお聞きになっても構いません。実際は、具体的な目的や意図はあるのかもしれませんが、多くの質問というのは、それは明らかにされません。その中で、回答をするというのは、必ずしも、質問が理解出来ているわけではないからです。もしかしたら、VBAは必要がないのかもしれないのですから。また、その場合は、Excelのバージョンにも影響してきます。
回答ありがとうございます。
家庭の事情でお礼が遅くなりました。申し訳有りません。
シート保護と右クリックメニューのカスタマイズで目的を達成することができました。ご意見も参考にしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) Excelで、あるセルだけ入力させたい、オートフィルターも使わせたい際のシートの保護 2 2023/02/23 15:14
- Excel(エクセル) 計算式がたくさん入ったExcelのファイルを他のファイルからシートを挿入した際、計算式の中に他のファ 4 2023/08/15 11:28
- Excel(エクセル) 列を挿入しても式の一部を固定するには 6 2023/05/31 21:57
- その他(Microsoft Office) Wordを変換してExcelに挿入 2 2022/07/04 23:59
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excel VBA 指定フォルダに格納されている全エクセルファイルに指定シートを挿入する方法について 1 2022/08/22 11:53
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) Excelでこういうカードの作り方 枠線の引き方や、挿入画像の拡大縮小など わかる方教えてください、 2 2022/05/03 21:22
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
行が挿入される前に確認して処理するマクロ
Excel(エクセル)
-
Excelで行が挿入したときに、自動的に別シートにも挿入したい
Excel(エクセル)
-
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
長い時間かかるマクロが実行中かどうかを表示したい
Excel(エクセル)
-
6
【VBA】Worksheet_changeイベントで特定のキーが押されたときだけ無効にしたい
Visual Basic(VBA)
-
7
すでにコピーした情報を貼り付けたらイベントを発生
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
デスクトップのアイコンが削除...
-
USBメモリーのデータ削除方法
-
デイリーモーション こべつ削除
-
画像の8個の物の呼び名と設定...
-
メーラーThunderbirdの左に有る...
-
Word 2010で画面に2ページ並ん...
-
突然PDFファイルが印刷できなく...
-
PDFデータを印刷、複製、スクシ...
-
PDFファイル印刷時、URLをフッ...
-
ワード文書 B5→A4変換
-
エクセルでPDFにB4サイズ...
-
みつも郎で
-
秀丸の印刷時の改頁コード
-
空白に四角(□)が表示されない...
-
One Note 日付の非表示できます?
-
パワーポイントのプレゼンで
-
bilibiliという動画サイトの動...
-
「K」のみのグレーと「K」を使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
リストボックスでの選択項目分...
-
メルカリに関しての質問です。 ...
-
ODBCの自動登録について
-
Excelで行挿入イベントをハンド...
-
行を削除する時に警告したい
-
MP3プレーヤーに書き込んだ曲を...
-
エクセルのVBAについて
-
Bamboo DockがDockから消えません
-
エクセルの編集(行間隔を一度...
-
SONY製RDR-HX50での「まる録の...
-
Word : ページ削除の仕方
-
Excelのチェックボックスの消...
-
Windows Mailで、アドレス帳の...
-
iPOD shuffle 曲の削除
-
Wordで選択領域のバックスペー...
-
FOMAカードの電話帳の削除の仕方
-
EXCEL2007で、挿入したチェック...
-
MSN Hotmailアドレスの削除
おすすめ情報