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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
Sub ***( ) と Private Sub ***( ) の違い
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
private sub にしたらマクロが見えなくな
Excel(エクセル)
-
-
4
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
5
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
初歩的な事だと思います。 Sub または Function が定義されていません。
Visual Basic(VBA)
-
8
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
9
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
10
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
11
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
12
Private Sub内でSubをCallしたい
その他(プログラミング・Web制作)
-
13
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
14
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
マクロが登録できません
Excel(エクセル)
-
17
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
18
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
19
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
20
EXCELで条件付き書式で空白セルの時は塗りつぶし無しにする方法
Excel(エクセル)
関連するカテゴリから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ランキング
-
エクセルでツールバーに「縮小...
-
複数のデータ系列の線の太さを...
-
VBA[Private Sub]のコードをシ...
-
ファイル名を今日の日付、時刻...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
最初の1回のみにボタンクリッ...
-
エクセルのマクロでSelection.S...
-
Powerpointでランダムな数字の...
-
ピボットグラフの書式の固定に...
-
Excelのラジオボタンにチェック...
-
VBAで棒グラフの色を変えたい
-
VBA ChartWizardで円グラフが書...
-
EXCELにクリップボードにある画...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
別ブックからユーザーフォーム...
-
ExcelのVBAでWordの書式を変更...
-
Excel マクロでグラフの切取り...
-
VBAを使ってエクセルシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
Powerpointでランダムな数字の...
-
ファイル名を今日の日付、時刻...
-
cellsで特定の離れた範囲を選択...
-
VBA[Private Sub]のコードをシ...
-
VBAを使ってエクセルシート...
-
ピボットグラフの書式の固定に...
-
どのドキュメントは暗号化され...
-
エクセルのマクロでSelection.S...
-
Pictures.Insertメソッド⇒Shape...
-
最初の1回のみにボタンクリッ...
-
別ブックからユーザーフォーム...
-
エクセル2007 テキストボ...
-
エクセルシートをまとめて印刷...
-
【ExcelVBA】クエリの更新とピ...
-
wordのマクロで縮小して貼り付...
-
エクセルのストップウォッチ
-
エクセルワークシート上に印刷...
-
Excelのラジオボタンにチェック...
おすすめ情報
早速の回答、ありがとうございました。
自分でも、ご回答を追試した所、その通りでした。未知の回答で新たな知識になり助かりました。
只、小生としては、何故【Private Sub ****()】にコードを記載したか?と言うと、それなりの理由が有ります。
実は、VBE画面のプロジェクト画面の【Module上】では無く、【Sheet1(****)上】で(そのシートだけで利用する)コードなので、【Private Sub ****()】を、図形((オートシェイプ等)に登録したい」と思った次第です。(最初にキチンと説明しなくて申し訳有りませんでした)
以上、追加の質問で申し訳ありませんが、回答戴ければ、助かります。どうぞ、よろしくお願いいたします。