7/17/2022

Excel。VBA。飛び飛びの空白セルに一括で文字を入力したい【Batch input】

Excel。VBA。飛び飛びの空白セルに一括で文字を入力したい

<SpecialCellsメソッド>

列内にある、空白セルに文字を入力したい場合、少なければ、コピーするとか入力でもいいのですが、空白セルの数も多く、しかも、「飛び地」だとすれば、面倒な処理といえます。


例えば、次の表。


提出済のC列のデータをみると、空白セルがあります。


しかも飛び地状態ですね。


今回は説明用のサンプルなので、たった5件のデータですが、もっといっぱいあるとします。


この空白セルに「未提出」という文字を入力・設定したい場合、コピーや入力では時間がかかってしまいます。


そこで、Excel VBAでプログラムを作ってみるという方法もあります。


プログラム文は大変なのではと考えてしまうところですが、次の一行で、終わらせることができます。


Sub 未提出()

    Range("c2:c6").SpecialCells(xlCellTypeBlanks) = "未提出"

End Sub


まずは、実行してみましょう。


空白セルに「未提出」と入力できていますね。


プログラム文を確認しておきましょう。

Range("c2:c6").SpecialCells(xlCellTypeBlanks) = "未提出"


Range("c2:c6")は、範囲選択ですね。

この範囲が対象になるわけです。


SpecialCells(xlCellTypeBlanks) = "未提出"

この「SpecialCells(xlCellTypeBlanks)」で、セルが空白なのかどうなのかを知ることができます。


空白だったら、「= "未提出"」

すなわち、未提出と設定することができたというわけです。


このように、データ量が多くて、やる処理は単純で反復のような場合には、Excel VBAでプログラムをつくってみるのもいいかもしれませんね。