- ベストアンサー
VBAマクロ 一定の条件で、「済」と記入する方法
VBAマクロを初めて書いています。 B列に「チェック」と書かれている場合に、C列へ「済」と記入するマクロを作りたいのです。 ----------------------------------------------- 会社名(A列) | チェック(B列) | 済(C列) ----------------------------------------------- ○○商事 □□不動産 | チェック △△株式会社 ××商店 | チェック ・・・・・ ・・・・・ ↓(マクロ実行) ----------------------------------------------- 会社名(A列) | チェック(B列) | 済(C列) ----------------------------------------------- ○○商事 □□不動産 | チェック | 済 △△株式会社 ××商店 | チェック | 済 ・・・・・ ・・・・・ ちなみに、行数(データ数)は、都度違いますので、まずは、データ数を確認する必要があると思います。 おそらく、セルC1にて、 条件式を作り、 =IF(B1="チェック","済","") これを、データ行数だけ実行するのかな、と想像しています。 具体的なプログラム等を教えて頂けることができれば、助かります。 どうぞ、宜しくお願い致します。 環境:EXCEL2003
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こうなると思います。 Sub Check() Dim Y As Long Dim YFrom As Long Dim YTo As Long '開始行は使用領域の最左上セル(領域の左から1番目、上から一番目)の行 YFrom = UsedRange.Cells(1, 1).Row '終了行は、開始行 + 使用領域行数 -1 YTo = YFrom + UsedRange.Rows.Count - 1 For Y = YFrom To YTo If ActiveSheet.Cells(Y, 2) = "チェック" Then ActiveSheet.Cells(Y, 3) = "済み" End If Next End Sub
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
Range("B65536").End(xlUp)で最終行を決めています。最初の位置が不明なのでB2にしています。 Sub Sumi() Dim rg As Range '// セル For Each rg In Range(Range("B2"), Range("B65536").End(xlUp)) If rg.Text = "チェック" Then rg.Offset(0, 1) = "済" '// 右のセル End If Next End Sub
お礼
有難うございます。 早速、試してみます。有り難うございました。
- Nayuta_X
- ベストアンサー率46% (240/511)
ヒントです。 チェック の書き込みが、されるセル(列)を選択して オートフィルタを使用し、チェック なら 隣のせるに済みと入れます。
お礼
有難うございます。 早速、試してみます。有り難うございました。