
Excel VBA で御教授いただきたいのですが、
ExcelのセルからFunctionプロシジャを呼び出し、その戻り値を呼び出しもとのセルに返す。
この時その戻り値によって、セルの属性を変化(例えば色替えなど)を、行いたいものです。
セル属性の変更の方法はわかるのですが、Functionプロシジャがどのセルから呼ばれたかが不明のため、どのセルに対して属性変更を行ってよいかがわからず困っています。
Functionプロシジャ中で、Functionプロシジャがどのセルから呼ばれたか知る方法をご存知の方がいらっしゃいましたら御教授御願いします。
OS:Windows2000 Excel:2000 です。
No.3
- 回答日時:
#1のものです。
ユーザ定義関数のことですね。言われてみれば、まさにその通りで失礼しました。
#2の方の方法でできるようです。わたしも勉強になりました。
No.1
- 回答日時:
セルからFunctionプロシジャを呼び出すという表現がわかりにくいです。
セルに対して何かを操作した時にプロシジャを呼び出すという方法はわかります。例えば、セルを右クリックした時、ダブルクリックした時、データの入力した時、選択しているセル範囲が変わったときには、それぞれ次のイベントプロシージャが呼び出されます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
これらのプロシジャは、Sheetオブジェクトに最初から備わっているというのはご存知ですよね。
引数は ByVal Target As Range ですから、このTargetを参照すれば、どのセルを操作している時にイベントが発生したのか知ることができます。
例えば、ダブルクリックしたセルの背景をブルーにしてみます。ダブルクリックした時のセル範囲がTargetなので、ここの書式プロパティを変更しています。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Interior.ColorIndex = 5
End Sub
Functionプロシージャを呼び出して、戻り値を使いたい場合は、このプロシージャから呼び出してください。
この回答への補足
早速の回答、有難うございます。
セルから呼び出すというのは、セルに
=関数名(引数1、引数2) と記述し、
VBAの標準モジュールに
Function 関数名(引数1、引数2)
(色々な計算処理)
関数名=計算結果
End Function
と、記述する方法を示したつもりです。
(言葉足らずですみません)
上記方法で関数を呼び出した時に、その計算結果に応じてセルの色を変えたいというものです。
関数が、どのセルから呼び出されたものかわからないものですから・・・
御教授頂いた、イベントで呼び出す方法でも実現できるとは思いますが、セルから関数を呼び出せば、計算に必要な引数を渡す事ができるので都合がよかったものです。
と言う事なんですが、ご理解頂けますかね??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- Visual Basic(VBA) どのロジックでセルが変更されたか知りたい 1 2022/04/22 06:58
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
Excelのマクロの呼び出し元を知りたい
Excel(エクセル)
-
VB6で呼び出し元の情報を取得する方法について
Visual Basic(VBA)
-
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
特定の色のついたセルを削除
-
Excelで空白セル直前のセルデー...
-
【Excel VBA】一番右端セルまで...
-
CellEnterイベント仕様について
-
EXCEL VBA 文中の書式ごと複写...
-
【VBA】写真の貼り付けコードが...
-
VBA:日付を配列に入れ別セルに...
-
Excel UserForm の表示位置
-
エクセル VBA ボタンをクリック...
-
Excel 範囲指定スクショについ...
-
Excel VBAでCheckboxの名前を変...
-
C# DataGridViewで複数選択した...
-
Excel VBA IF文がうまく動作し...
-
エクセル、マクロで番号を読込...
-
DataGridViewでグリッド内に線...
-
昨日、質問した件『VBA にて、...
-
【ExcelVBA】値を変更しながら...
-
エクセルVBA 配列からセルに「...
-
【Excel VBA】マクロで書き込ん...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
【Excel VBA】一番右端セルまで...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
VBA:日付を配列に入れ別セルに...
-
C# DataGridViewで複数選択した...
-
Excel UserForm の表示位置
-
入力規則のリスト選択
-
Excel 範囲指定スクショについ...
-
エクセル、マクロで番号を読込...
-
DataGridViewでグリッド内に線...
-
Excel VBAで特定の範囲の空白セ...
-
CellEnterイベント仕様について
-
Excel VBAでCheckboxの名前を変...
-
【ExcelVBA】値を変更しながら...
-
データグリッドビューの結合セ...
-
下記のマクロの説明(意味)を...
おすすめ情報