プロが教える店舗&オフィスのセキュリティ対策術

Excelの画面にボタンを作り、これを押すと指定した動作(プロシージャ?)が起動するようにしたいです。
やり方は色々とあると思うのですが、今回はお手本にしているファイルの通りに行いたいです。

具体的にどうしたいのかというと、Sheetの中にプロシージャやCommandButtonを設定したいです。

画像は、現在私が作成しているVBEの画面です。
プロシージャを書いていく画面上部にある、オブジェクトをプルダウン画面には、「(General」と「Worksheet」の2種類のみです。
これに「CommandButton1」を追加するにはどうしたらいいでしょうか?
また、その横のプロシージャのプルダウン画面には、「(Decralation)」と「CommandButton1_Click」の2種類ですが、「Click」を追加したいです。

オブジェクト→CommandButton1
プロシージャ→Click
‥という状態にしたいです。

「【VBA】シートの中にオブジェクトを増や」の質問画像

A 回答 (5件)

こんばんは


回答は、すでにありますが、対象のシート上にActiveXコントロールを作成するとコードライティングエリア上部の左プルダウンに作成されたコントロール名が登録されます。

そのコントロールを選ぶと右プルダウンにそのコントロールが持つイベントが登録され、選択すると対象のイベントプロシージャがPrivate Subとして下のコードライティングエリアに作成されます。

また、シート上のActiveXコントロールを右クリックしコードの表示を
選択しても対象のコントロールのコードがライティングエリアに作成されます。
すでに作成されている場合は、VBEが開き、作成されているプロシージャ内にカーソルが移動、表示されます。
右クリックで作成されるイベントはCommandButtonの場合、Clickです
    • good
    • 0

こんにちは



既に回答されていますけれど、ボタンを作成する際に、「フォームコントロール」のボタンではなく、「ActiveX」のボタンを作成するようにしてください。

下の添付画像で、赤丸で囲んである方のボタンです。
「【VBA】シートの中にオブジェクトを増や」の回答画像4
    • good
    • 2
この回答へのお礼

fujillinさん、わかりやすく画像付きでありがとうございます!!
仰る通りで、どうにか無事にできました!
オブジェクトを増やすというのはこのようにするんだなと、何となくですが意味が分かった気がします。
やはり実践しながら学ぶと、できたときの腑に落ちた感覚が数倍です。
実をいうと、このあとプロシージャの紐づけの仕方で悩んだのですが、右クリック→プロパティで、紐づけたいプロシージャ名にすればいいんだと気がつきました。
本当にいろんな機能があるんだなと、知らないと損することが多いなと改めて思います。
今日はもう仕事が終わったので、これから夜な夜な勉強します。

お礼日時:2021/11/22 18:52

Book2のSheet1にActiveXのコマンドボタンを作っていますか?

    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
仰る通りで、ActiveXでできました!!
なるほど、Sheet内のオブジェクトを増やすということなんだな(シート、ボタン)と、うすぼんやりと知識が1つ溜まりました。
No.2さんのお礼にも書かせていただきましたが、ActiveXは使ってはいけないみたいにどこかで聞いた気がしていました。
しかしやはり使われることあるんですね。
こちらの疑問が晴れたことで、どうにか形が整いましたがまだ不十分なので引き続き改良します。ありがとうございます!

お礼日時:2021/11/22 18:47

No.1の者です。



Excelシート画面で、開発タブの、挿入のActiveXコントロールの中の、
コマンドボタンを配置すれば、出てきましたね。
    • good
    • 1
この回答へのお礼

mygoonicknameさんこんばんは!
前回の質問に引き続き、こちらにもご回答をいただきありがとうございます^^!!
仕事中だったため、皆さんへのお礼の前に新たな質問を投稿してしまい申し訳ありません。
そしてActiveXでできました!!
私が謎だった、プルダウンにきちんとCommandButtonが出てきました。
ActiveX、たしか何かの動画で使ってはいけないだか、無視するようにと言われていた気がするので、意識していませんでした…
前任者が本当に知識のある方だったことを実感しています。

お礼日時:2021/11/22 18:44

こんにちは。



シート上では、その様な機能はないと思うのですが。

ユーザーフォーム上では、ダメでしょうか?
左のVBAProjectで、右クリックの、挿入、ユーザーフォームで、そこに
コマンドボタンを配置して、そのコマンドボタンをダブルクリックすれば
自動で追加されるのですが。

https://www.sejuku.net/blog/37407
    • good
    • 1
この回答へのお礼

ありがとうございます!
実は最初、新しくUserformを追加し、そこに出てきたコントロールの一覧からコマンドボックスを選ぼうとしました。
ですが、見本にしていたファイルには、Userformはありませんでした。
Sheetの方にプロシージャは書かれていましたが、表示するボタンの設定はどこに書かれているのか謎で、よくよくVBEを見たら、どうもオブジェクトプルダウンとプロシージャプルダウンが、私が作ったものと違う…という状態でした。

結果が一緒ならなんでもいいと思うのですが、仕事で使用するファイルであることと、私がVBAに詳しくないので、なるべく前任が作ったファイルに沿った記述にしようと思ったのが動機です…
No.2の方にも再びありがとうございました!

お礼日時:2021/11/22 18:41

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