
VBAの初級者です。
VBA[Private Sub]に以下の様なコードを作成しました。
(表示するシートを切り替えるコードです)
Private Sub *****1_Click()
Worksheets("*****").Activate
End Sub
以上のコードをシート上に作成した図形(オートシェイプやコントロールボタン)に登録しようとすると、作成した図形を右クリックして出てくるメニュー【マクロ登録】ダイアログ画面には【Private Sub】マクロ名のリストが出て来ず、登録したくても登録できません。
(【Sub】マクロ名のリストは表示されているが?)
どうしたら、【Private Sub】マクロを登録できるか?教えて下さい。お願いいたします。
No.3ベストアンサー
- 回答日時:
No.1です。
補足コメントの内容
・シートへのプロシージャーの記述
・「Private Sub」を図形に登録
までは想定して回答したつもりでしたが、何が解決しないのかが不明です。
>どうしてもPrivateが良いのであれば、そのあとで追記しても大丈夫なようです。
が理解できませんでしたか?
一旦「Sub・・・」で登録後、「Private Sub・・・」としても、登録されたプロシージャは名前が変更されていなければ変更されないので、Privateという属性に変更しても(少なくとも私の使用している環境では)大丈夫ですよ。
という意味で回答しております。
>【マクロ登録】ダイアログ画面には【Private Sub】マクロ名のリストが出て来ず、登録したくても登録できません。
ということでしたので、「リスト」へ表示するための手段として回答しましたが、
「Private等、リストに出てこない物を登録したい」ということでしたら「マクロ名」のところに
(ブック名!)シート名.プロシージャー名
※ブック名は省略可能。シート名.(ピリオド)プロシージャー名で、そのシートにあるプロシージャーという意味でしょう。
を手入力しても登録されます。
なお、シートに記載されたPrivateだからと言って「他のシートの図形から登録できない」わけでは無く、上記の方法で簡単に登録できますので、それほどPrivateにこだわる意味は無いように思います。
No2さんへの補足コメントでしたら、この回答は無視して構いません。
No.3 No.1回答者: Zincer 様
お世話になります。
=以下の文章より、前の回答内容は、小生も追試もしましたし、理解できています。
>「Private等、リストに出てこない物を登録したい」
>書式(省略)・・・に従って、を手入力しても登録されます。
> なお、シートに記載されたPrivateだからと言って「他のシートの図形から登録できない」わけでは無く、上記の方法で簡単に登録できますので、
=しかし、回答の[書式]に従って記述して登録(OK)しても、
「マクロ'(ブック名!)シート名.プロシージャー名'を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」のメッセージがでて実行できませんでした。(しかし、ブック上の他のマクロ([Module1]に記載したプロシージャ(マクロ)は[図形クリック]で問題無く実行できます。)
=その後、色々と試行実験をして見た結果、以下の様な事が判明しました。((小生の環境では・・・)
既にある[シート名]上に記載した[Private Sub プロシージャ名]を、一旦 Private を除いて[Sub プロシージャ名]にして(当然、マクロダイアログ画面でもリストにも表示される)で図形に登録した後で、Private を付け加えた[Private Sub プロシージャ名]に変えたら、問題無く[図形クリック]でマクロが実行されました。
=正に、[第一回目の回答に尽きる]結果となりました。
>それほどPrivateにこだわる意味は無いように思います。
小生の質問にお付合い戴き、本当に、色々とありがとうございました。
No.2
- 回答日時:
こんばんは!
オートシェイプにマクロを登録する場合は
挿入したオートシェイプ上で右クリック → マクロの登録 → 新規作成
これでVBE画面に
Sub 挿入したオートシェイプ名_Click()
End Sub
と表示されますので、カーソルが点滅しているところに
必要なコードを記載するだけです。
※ フォームコントロールのコマンドボタンの場合は挿入すれば
VBE画面が表示されますのですぐにコード記載。
ActiveXコントロールのコマンドボタンでは
挿入したコマンドボタンをダブルクリック!
これでコード記載が可能になります。m(_ _)m
No.1
- 回答日時:
先ずは「Private」を除いて「Sub *****1_Click()」としておき、質問中の手順で登録。
どうしてもPrivateが良いのであれば、そのあとで追記しても大丈夫なようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
-
4
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
5
エクセル マクロ 標準モジュールのマクロから、シートモジュールのマクロを呼び出す
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
Private Sub内でSubをCallしたい
その他(プログラミング・Web制作)
-
12
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
13
Sub ***( ) と Private Sub ***( ) の違い
Visual Basic(VBA)
-
14
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
15
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
16
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
17
初歩的な事だと思います。 Sub または Function が定義されていません。
Visual Basic(VBA)
-
18
private sub にしたらマクロが見えなくな
Excel(エクセル)
-
19
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
20
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
ファイル名を今日の日付、時刻...
-
VBAを使ってエクセルシート...
-
エクセルでツールバーに「縮小...
-
Powerpointでランダムな数字の...
-
VBA[Private Sub]のコードをシ...
-
エクセルVBAで、画像の倍率を知...
-
VisualStudioのアウトライン機...
-
ピボットグラフの書式の固定に...
-
エクセルシートをまとめて印刷...
-
【ExcelVBA】クエリの更新とピ...
-
VBAで実行時エラー '1004'の解...
-
PowerpointファイルにCtrl+Vで...
-
EXCELにクリップボードにある画...
-
VBAでの複数ページの印刷範囲の...
-
ユーザフォームをどの画面から...
-
エクセルで「ODBC Microsoft Ac...
-
エクセルで、マクロをボタンに...
-
Pictures.Insertメソッド⇒Shape...
-
エクセルのストップウォッチ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
VBA[Private Sub]のコードをシ...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
最初の1回のみにボタンクリッ...
-
どのドキュメントは暗号化され...
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
Pictures.Insertメソッド⇒Shape...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
エクセル2007 テキストボ...
-
エクセルワークシート上に印刷...
-
エクセルのマクロでSelection.S...
-
htmlまたはJavascriptからファ...
-
別ブックからユーザーフォーム...
-
エクセルシートをまとめて印刷...
-
EXCELにクリップボードにある画...
おすすめ情報
早速の回答、ありがとうございました。
自分でも、ご回答を追試した所、その通りでした。未知の回答で新たな知識になり助かりました。
只、小生としては、何故【Private Sub ****()】にコードを記載したか?と言うと、それなりの理由が有ります。
実は、VBE画面のプロジェクト画面の【Module上】では無く、【Sheet1(****)上】で(そのシートだけで利用する)コードなので、【Private Sub ****()】を、図形((オートシェイプ等)に登録したい」と思った次第です。(最初にキチンと説明しなくて申し訳有りませんでした)
以上、追加の質問で申し訳ありませんが、回答戴ければ、助かります。どうぞ、よろしくお願いいたします。