1. ホーム
  2. コラム
  3. 第3回 初心者でも作れるExcelマクロ(変数/ループ処理 編)

第3回 初心者でも作れるExcelマクロ(変数/ループ処理 編)

はじめに

特定の1ファイルを削除する処理は前回までで完成しました。
しかし、上司の要望は複数ファイルの削除であるため、繰り返し処理(ループ処理)を追加し、削除リストに記載されているファイルを全て削除できるようにします。

3-1.変数について

ループ処理の下準備として変数を宣言します。

Dim 【変数名】 As 【データ型】

変数を簡単に言うと「データの入れ物に名前を与えたもの」です。
「2-2」で作成したプログラムでは、「A3」に記載された情報しか取得できないので、参照するセルを変更できるように「変数化」をします。

データ型は複数ありますが、今回は「Long型(整数型)」を使用します。

※ データ型について興味がある方は、は以下の記事を参考にしてください。

VBA基本(変数のデータ型)

① 変数y(行数の座標として使用)を宣言する。
② 変数yの初期値を設定する。(今回は「A3」のセル)
③ Step3までの処理を変数に置き換える。

実演アニメーション

3-2.ループ処理について

Do While 【条件式】 ~ 【処理】 ~Loop

「Do While」は、指定の条件に当てはまる時、その処理を繰り返すという文法です。
これを使用し、リストに記載がある時に処理を実行するようにします。

条件式について

「削除リストに記載がある場合」という条件を指定したいところですが、どのような文字列が記入されているかは分かりません。
そこで、発想を逆転して下記のような条件を指定します。

※ 「<>」は比較演算子の1つであり、「ではない時」を意味します。

処理について

ループ処理について、もう少し詳しく考えてみましょう。

① ファイルを削除する。

「3-1」で変数に置き換えたファイル削除処理を「Do While」内に記述します。

② 削除リストの次の行に移動する。

①の処理の次に「y = y + 1」と記述します。

対象を「A3」から「A4」に移動する場合を例に考えてみましょう。
変数化した「y」の値が1足された数値となっていることが分かります。

例)対象を「A3」から「A4」に移動させる場合

従って「y = y + 1」とすることで、「A3」→「A4」に移動させることができます。

入力されていない行にたどり着くまで、①②の処理が繰り返されるので、結果的に削除リストに記載されているファイルが全て削除されます。

実演アニメーション

3-3.最終VBAコード

Sub fileDel()
Dim y As Long
y = 3
Do While Worksheets("Sheet1").Cells(y, 1).Value <> ""
Kill Worksheets("Sheet1").Cells(3, 3).Value & Worksheets("Sheet1").Cells(y, 1).Value
y = y + 1
Loop
MsgBox "削除完了"
End Sub

このように1つ1つ必要な処理を噛み砕きながら調べていき、組み合わせていくことで初心者でも便利なツールを作ることができます。
今回は簡単なプログラムでしたが、この他にも色々なツールを作ることができるので、興味がある方は調べてみてはいかがでしょうか。

■コラム執筆者

第2ビジネスユニット プランニング&インテグレーション室 清水宏樹

カテゴリ: Webサイト構築, Webサイト運用運営
2017年03月23日

RSS