質問: エクセルのマクロ、vba vbaの初心者です。 ご指導お願いいたします。 現在vbaを作成中なのですが、mの列には様々な名前のデータが入力されており その中から例えば○○と入力されている場合のみ、その同じ行のbの列に△△と 入力したいのですが、うまくできません。 ○○とはm列に複数あり、そしてm列以外にも入力されています。 参照したいのはm列に○○と入力されているものだけです。 どうかご指導お願いします。
回答: vbaで作ってるんですよね? でしたら、そういう時こそ do ループの出番です。 例えば、m列1行目から処理を始めて、セルの中身が 空白になるまでそれをしたい場合。 sub vba_test() range("m1").select do if selection.value = "○○" then selection.offset(0,-11).value = "△△" selection.offset(1).select loop until selection.value = "" end sub これで動くんじゃないですか? とりあえず、私の環境では問題なく動作しましたけど。 要は、 「初めにm1にカーソルを持って行き、一つずつ下にずらし つつ(offset(1))内部をチェック、○○だったら左に11個 ずらした場所に△△と書く、で、中身が空白になったら ループを終了する」 って処理です。