プロシージャ名を取得できないかなと考えています。
・Form_Openプロシージャ内で「Form_Open」という文字を取得
・フォーム上に「新規登録」というボタンを作成、クリックした時にできる「新規登録_Click」プロシージャ内で「新規登録_Click」という文字を取得
不可能な場合、各プロシージャに「Form_Open」や「新規登録_Click」をベタ書きしようと考えていますが、非効率と考え、やりたくありません。
できればバージョンは2000以降で、ExcelでもAccessでも構いません。
可能かどうかだけでも教えてください。
No.1ベストアンサー
- 回答日時:
>不可能な場合、各プロシージャに「Form_Open」や「新規登録_Click」をベタ書きしようと考えていますが
何がしたいのか全く解りませんが、”プロシージャ名取得”の関連情報のリンクだけ紹介しておきます。
http://oshiete1.goo.ne.jp/qa1219426.html
http://park7.wakwak.com/cgi-bin/sbox/~efc21/exqa …
http://www.officetanaka.net/excel/vba/vbe/05.htm
http://support.microsoft.com/kb/410621/ja
http://search.goo.ne.jp/web.jsp?dummy=%F3%FE%F3% …
No.3
- 回答日時:
こんにちは。
>できればバージョンは2000以降で、ExcelでもAccessでも構いません。
最初に、もし、マクロを作成しようとするなら、アプリケーションは決めてください。内容的にみて、設計のあやふやなものは、回答しにくいです。Excelは、Excel VBAで、Access はAccess VBAのスタイルがあります。共有する部分はあっても、スタイルが違います。
ハンドル名から、VBAをjobにしているなら、素人の方だとは思いませんが、タスク(仕事)と、その作業過程の、主と従は混同しないほうがよいです。その過程の内容を限定して、可能かどうかと聞かれても、経験の多少に関わらず、ご自身でさえ見通しの立てられないものは、掲示板で聞いても、ほぼ無理と考えたほうがよいです。
今回は、Yes ともNoとも回答できません。
編集のテクニックなのか、マクロ作業中なのか、その区分けすら分かりません。
>・Form_Openプロシージャ内で「Form_Open」という文字を取得
>・フォーム上に「新規登録」というボタンを作成、クリックした時にできる「新規登録_Click」プロシージャ内で「新規登録_Click」という文字を取得
実際に、実行中のプロシージャ名を取るのは、VB.Net にはありますが、VB6系では用意されていません。少なくとも私は知りません。コードの中にあらかじめ書いておくしかありません。そんなに手間でもないと思います。
'例:
MsgBox "Run on procedure CommandButton1_Click of Form UserForm1"
しかし、このようなスタイルが成立するのは、On Error Goto ErrorHandler で、エラーが起きたときだけです。
稼働中のコントロール名を取得するなら、こうなります。
MsgBox ActiveControl.Name
こちらは、実行後にコントロールのプロパティを変更する場合に使用します。
この辺りは、どこまでできているのでしょう。
『「新規登録_Click」をベタ書き』というのは、それぞれのコードに書き入れたくないということでしょうか。何に対して非効率なのか、いまひとつ、共感が沸きません。たとえば、まさかコピー&ペーストが面倒だということでもないと思います。
どういう状況でなぜ必要なのかとか、そういう説明がありません。Error 発生の際のどこから発生しているか、それを提示する以外には、プロシージャ名を取るのはあまり意味がありません。
大事なことは、最終的に、何をしたいかなのです。
No.2
- 回答日時:
Excelの場合
workbookに含まれるVBのコードを扱うには次のObjectを使用します
ActiveWorkbook.VBProject.VBComponents
メソッドやプロパティは自分で調べてください。
私はVBのコードをテキストに吐き出して分析するために以下のようなコードを書きました。(一部ですが)
For Each vbo In ActiveWorkbook.VBProject.VBComponents
If (vbo.Type = 1 Or vbo.Type = 2) And vbo.Name <> "VBE" Then
i = i + 1
モジュール名(i) = vbo.Name
vbo.Export filename:=tempパス & モジュール名(i) & ".bas"
End If
Next
VBAのコードを書き換えることがVBAでできるかどうかはわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- その他(ニュース・時事問題) マイナポイントについて質問です。 ①カードの新規取得したときと、健康保険証としての利用申込みしたとき 1 2022/08/26 20:51
- その他(ニュース・社会制度・災害) マイナポイントについて質問です。 ①カードの新規取得したときと、健康保険証としての利用申込みしたとき 1 2022/08/26 21:00
- YouTube 以前に,チャンネルを YouTube の削除を受けていても・・・。 1 2023/06/17 01:57
- OCNモバイルONE MNP取得後、新規契約前に解約をしたらMNPは有効のままですか? 6 2022/06/30 21:18
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- その他(IT・Webサービス) この規制の正体 2 2022/09/15 08:01
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
プロシージャ名の取得
Visual Basic(VBA)
-
【VBA-AC2000】カレントプロシージャ名を取得したい
Visual Basic(VBA)
-
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
-
4
エクセルVBAでプロシージャ名を取得したい
Excel(エクセル)
-
5
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
6
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
10
VBAのエラー発生場所をメッセージBOXに表示
Visual Basic(VBA)
-
11
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
On ErrorでエラーNoが0
Visual Basic(VBA)
-
16
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
19
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
-
20
プロシージャを呼び出したプロシージャ名を知る方法は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
callで順に実行されるプロシー...
-
エクセルVBAでUserFormを起動し...
-
VBA プロシージャの名前の取得
-
Excel VBAで「プログラム実行」...
-
アクセス 意図せずサブプロシー...
-
Accessでグローバル変数を宣言...
-
ブックオープン時にテキストボ...
-
或るプロシージャの呼び出し元判定
-
【Excel VBA】 WorksheetやRa...
-
エクセルVBAが対応できるプログ...
-
重複するIDのデータを1行にま...
-
今日の日付が入った行のデータ...
-
SQL*Plusの終了はquit?exit?
-
PL/SQLカーソルの2重FORループ...
-
キャッシュを使わずにSELECTを...
-
Statement ignored というエラー
-
Texの枠囲み調節
-
excel 日付のみ置換したいのです
-
excelマクロで意図通りのソート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
callで順に実行されるプロシー...
-
VBA プロシージャの名前の取得
-
【Excel VBA】 WorksheetやRa...
-
或るプロシージャの呼び出し元判定
-
Excel VBAで「プログラム実行」...
-
OutlookVBAで作成したマクロに...
-
Accessでグローバル変数を宣言...
-
ACCESS2007インポート時の空白...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
excel/vba/public変数
-
エクセルVBAが対応できるプログ...
-
Accessのプロシージャ名が勝手...
-
ブックオープン時にテキストボ...
-
ACCESS マクロをモジュールに変...
-
Excel97のVBAで、出てくるPubli...
-
DB2でのストアドプロシージャの...
-
VBAのプロシージャー間で、変数の受...
おすすめ情報