こんばんは。
excel vba のchangeイベントを教えてください。
・シートは3種類あります。(元、A、B)
・元シートの F列に日付1、G列に商品名、H列に日付2
①元シートの F列に日付1(入力有)、G列に商品名(入力有)、H列が空白の場合、シートA(A:Z)、シートB(A:Z)にG列と同じ商品名があればそのセルフォントを赤文字にする。
②元シートの F列に日付1(入力有)、G列に商品名(入力有)、H列に日付ありの場合、シートA(A:Z)、シートB(A:Z)にG列と同じ商品名があればそのセルフォントを白文字にする。
※元シートのG列商品名は元シートのF列、H列の日付が両方入った場合は、G列にまた入ってきます。
文字が入った時の簡単なchangeイベントはできるのですが、商品名を検索してchangeイベントが出来ません。
ご教示よろしくお願い致します。
(関数ではなくVBAでお願い致します)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは
ご質問文を読んでも、よく理解できないのですが・・・
「関数が入っているセルの値が変わっても、Changeイベントが発生しない」という意味のご質問でしょうか?
それとも、イベント処理のVBAの内容を作成できないというご質問でしょうか?
どちらかなのわからないので・・
◇前者の場合
直接そのセルをチェックするのではなく、関数の参照元の変更をチェックすれば宜しいでしょう。
あるいは、その関数をユーザー定義関数化(=見かけだけで良い)しておけば、当該セルの再計算が発生した時点でとらえることは可能になると思います。
ただし、ユーザ定義関数からは、書式を直接変更することができなかったかも知れません。
(記憶が曖昧です。すみません)
◇後者の場合
対象範囲から同じ値の存在を探せば良いだけなので、FINDメソッドでチェックするか、またはWorksheetFunctionを利用しても(COUNTIFなど)チェックは可能と思います。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
https://docs.microsoft.com/ja-jp/office/vba/api/ …
とは言え、ご質問の内容であれば、セルに「条件付き書式」を設定しておけばすむことのように思われますので、VBAを用いる必要もなさそうに感じますけれど・・
fujillinさん、ご回答ありがとうございます。
質問が伝わり辛く申し訳ありません。
質問は後者になります。
findメソッド調べてみます。
No.2
- 回答日時:
「文字が入った時の簡単なchangeイベントはできる」とのことなので、入力された商品名の取得や日付1,2の条件判定は、すでに自力で出来ているってことで良いんですよね?
そうなると、分からないのは「商品名で検索して、フォント色を変える」ところのみですよね?
であれば、FINDメソッドより、Range.Replace メソッドの方が簡単です。こんな感じです。
Application.ReplaceFormat.Font.Color = 255
Cells.Replace What:="BBB", Replacement:="BBB", LookAt:=xlWhole, ReplaceFormat:=True
上記の例は、アクティブシートのすべてのセルを対象に、文字”BBB"を”BBB"に置換(結局、文字としては、何も変わらない)。同時にフォントカラーを赤に置換しています。
ママチャリさん、ご回答ありがとうございます。
"BBB"の商品名が300種類ぐらいあります。
種類が少ないときはreplaceでいいと思うのですが、種類が多いときはfindメソッドがいいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Visual Basic(VBA) vbaマクロについて シート1のA列にある商品コードが シート2のB列にある商品コードに該当する場合 2 2023/05/17 13:41
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
VBマクロ 色の付いたセルを...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
エクセル VBA ユーザーフォー...
-
VBA A列にありB列にないものま...
-
B列の最終行までA列をオート...
-
複数処理 Worksheet_Change(ByV...
-
超難 日付に対するクロス集計
-
文字列の結合を空白行まで実行
-
VBA 値と一致した行の一部の列...
-
空白セルをとばして転記
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA intersect colu...
-
VBAのFind関数で結合セルを検索...
-
オートフィルタをマクロで作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報