現在、あるExcelプログラムの修正を行っております。
プログラム内にはセル内のテキストの変化をトリガーとして動作するマクロが標準モジュールに記述されてあるのですが、そのマクロを動作させるための記述が見当たりませんでした。
通常であれば、上記のような動作をさせる場合
Private Sub Worksheet_Change(ByVal Target As Range)
目的の動作(マクロ)
End Sub
を使用して実現すると思っているのですが、その記述はありませんでした。
また、それ以外の方法を自分なりに調べてみたのですが発見できませんでした。
私の知識不足で申し訳ないのですが、上記の方法以外にセルのテキストチェンジをトリガーとしてマクロを動作させる方法をご存知の方がおられましたら、ご教授の程宜しくお願い致します。
基本情報を記載します。
ファイル形式:xls
Excelバージョン:Excel2010
OS :Windows 7 Professional
No.2ベストアンサー
- 回答日時:
こんにちは。
>セルのテキストチェンジをトリガーとしてマクロを動作させる方法
クラスモジュールは、そのブックだけとは限らないです。
別の所にあっても、目的のイベントは働きますね。(それではウィルスもどきです(^^;)
アドインでも可能ですが、COMアドインの方は、それが出来たかは知りません。
COMアドインは、新しいテクニックは知りませんから。
他にも、一般的には ThisWorkbook モジュールが一番濃厚です。
それ以外に、古いテクニックですが、標準モジュールに、Ver.5 辺りのVBAの方法で、"OnEntry" メソッドがありますが、今、Excel2010で試してみましたら、まだ生きているようですね。
しかし、Helpには出てきませんでした。
>WindFaller様
早速の回答ありがとうございます。
標準モジュールを再度確認した結果、OnEntryメソッドによって実現されている機能であることが分かり、無事悩みが解決できました。以下のようなサンプルプログラムを作成し動作も確認できました。ご教授いただき、ありがとうございます。
調べてみると、もともとのプログラムが2001年に作成されたものだったのでOnEntryが使用されていたのではないかと思っています。
サンプル:
Sub Auto_Open()
TrapEntry
End Sub
Sub TrapEntry()
ActiveWorkbook.Worksheets("Sheet1").OnEntry = "movecells"
End Sub
Sub movecells()
If ActiveCell.Address() = "$C$2" Then
Range("G1").Select
Exit Sub
End If
End Sub
No.1
- 回答日時:
シートモジュールの中やクラスモジュールの中は見たのでしょうか?
この回答への補足
>f272様
早速返答いただきましてありがとうございます。
シートモジュール、クラスモジュールの中も確認しました。
クラスモジュールにはプログラムはありませんでしたが、シートモジュールには以下の中身のないプログラムが記載されています。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
動作の補足として、デバッグで確認した動きを以下に記載します。
(1)セルに値(数値)を入力してEnter
(2)標準モジュール内のプログラムが動作(特定のセルがActiveの場合、別のセルをActiveにする)
(3)上記のシートモジュールが動作
※試しにマクロの記録を行って確認しましたが、上記の動作と同じでした。
私としてはEnter押した直後に標準モジュールのプログラムが動作していることが分からない状態です。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
ベースモジュールって?
-
Excel VBA 『Call』で呼び出す...
-
【vba】フォームに書いてあ...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
Excelで時刻になったら知らせて...
-
モジュールとクラスの違いって...
-
'Range'メソッドは失敗しました
-
VBでグローバル変数を宣言するには
-
グラフのX,Y座標を取得したい
-
大量の標準モジュールを解放す...
-
モジュールの最大数はいくつな...
-
VBAで旧字体を異字体に一括で変...
-
Excel VBA でのAPI呼び出しが・...
-
エクセルVBAでシートモジュール...
-
Excel VBA 標準モジュール内で...
-
Friend は標準モジュールじゃ宣...
-
標準モジュールを削除したい。(...
-
モジュールからフォームのボタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
VBでグローバル変数を宣言するには
-
グラフのX,Y座標を取得したい
-
VBA This Workbookモジュール...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
VBAで旧字体を異字体に一括で変...
-
vba userFormのSubを標準モジュ...
-
ベースモジュールって?
-
標準モジュールを削除したい。(...
-
Access VBA標準モジュールにつ...
-
Form間の値の渡し方
-
VBAProjectのモジュ...
-
'Range'メソッドは失敗しました
おすすめ情報