- ベストアンサー
エクセル VBA 自動マーク設定について
エクセルで悩んでいます どなたかご存じなら教えてください。 内容としてはセルAに発注年月を入力しており,セルBには納入年月を入力してい ます。発注年月と納入年月が同じ年月ならセルCに○と自動入力表示させたいのですが可能でしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はて?なぜわざわざマクロにこだわるのでしょう。何か特別な目的があるのでしょうか。 とりあえずご質問の直接の回答その1: シート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) dim h as range on error resume next for each h in application.intersect(target, range("A:B")) if h <> "" and format(cells(h.row, "A").value, "yyyymm") = format(cells(h.row, "B").value, "yyyymm") then cells(h.row, "C") = "○" else cells(h.row, "C").clearcontents end if next end sub ファイルメニューから終了してエクセルの戻る A列、B列に「生データを記入する」 #ご相談では書かれてませんが、今まで同じ年月で入ってたのをわざわざ変更して異なる年月にした等で、○を消すようにします ご相談の直接の回答その2: sub macro1() dim h as range on error resume next for each h in range("A:B").specialcells(xlcelltypeconstants, xlnumbers) if format(cells(h.row, "A").value, "yyyymm") = format(cells(h.row, "B").value, "yyyymm") then cells(h.row, "B") = "○" end if next end sub ファイルメニューから終了してエクセルに戻る A列、B列に記入し、マクロを実行する ご相談では聞いてないけどごく一般的なやり方: C列に C2: =IF(ISNUMBER(A2),IF(A2-DAY(A2)=B2-DAY(B2),"○",""),"") と記入、以下コピーしておく。
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
お礼
ありがとうございました.教えていただいたマクロを参考にプログラムしてみます