エクセルVBA(マクロ)講座④仕分けっぽいの(ヽ´ω`)

こんにちは!ハウスドゥ!塩尻店の井戸川です。

 

今日は覚えるとお仕事がちょっと楽になる、エクセルのVBA(マクロ)について紹介しようと思います٩(๑òωó๑)۶

エクセルを使っていると、関数だけじゃ処理できないことって出てきますよね(ヽ´ω`)

そんなときに便利なのが、VBAという機能です(・∀・)

今回は、今までより少し実践的なことをしてみますね(ヽ´ω`)

まずは、こちらを御覧ください(´ε` )

このデータから、"食べ物"だけを選んで別シートに仕分けしてみます(´ε` )

 

様々な方法があるので、一例としてですが・・・

コードはこちらです(ヽ´ω`)

 

-------------------------------------

Sub test()

 
Dim i, k

 

Worksheets.Add
 ActiveSheet.Name = "食べ物一覧"
 
Rows(1).Copy
Worksheets("食べ物一覧").Rows(1).PasteSpecial

 

k = 2

 

For i = 2 To 10
  If Cells(i, 1) = "食べ物" Then
    Rows(i).Copy
    Worksheets("食べ物一覧").Rows(k).PasteSpecial
    k = k + 1
  End If
Next i

    
End Sub
-------------------------------------

 

前よりちょっと難しく見えますね。

でも、やっていることは『変数』『繰り返し処理』『条件分岐』です(´ε` )

ちょっと長いですが、分解して説明していきます(。>﹏<。)

 

Dim i, k

 変数、i と k を宣言しています。

 カンマで区切ることで複数同時に設定することも可能です(´ε` )

 

Worksheets.Add
ActiveSheet.Name = "食べ物一覧"

 ワークシートを新しく作り、シート名を『食べ物一覧』にしています。 


Rows(1).Copy
Worksheets("食べ物一覧").Rows(1).PasteSpecial

 基のシートの1行目(種別、品名、価格が書かれている行)をコピーし、

 新しく作った"食べ物一覧"のシートの1行目にペーストしています(´ε` )

 

k = 2

 このカウンタ k は新しく作ったシート"食べ物一覧"のペースト先を指定しています。

 k の初期値は2に設定しています。これにより、ペースト先は2行目からになっています。

 基データを参照するカウンタ i と分けることにより、"食べ物一覧"に空白の行が作られません(ヽ´ω`)

 

For i = 2 To 10

 繰り返し処理です。

 慣れてくると、繰り返しの回数を指定せず、空白行を参照したら繰り返し処理を終了ってのも組めるようになりますよ(´ε` )


If Cells(i, 1) = "食べ物" Then
  Rows(i).Copy
  Worksheets("食べ物一覧").Rows(k).PasteSpecial

 もし、基シートのCells(i,1)が"食べ物"だった場合、

 その行をコピーし、ワークシート"食べ物一覧"の k 行にペーストします。


k = k + 1

 ワークシート"食べ物一覧"のペースト先を一つ進めます。

 

End If
Next i

 分岐を終了し、Next で For に戻ります。

 

 

実行するとこんな感じです(´ε` )

新しいシートができて、種別=食べ物の行だけ抽出されていますね(ヽ´ω`)

 

次回のエクセルVBAに関するブログは今のところ未定です(´ε` )

はじめての方もご安心ください。経験豊富なスタッフが、
物件探しのノウハウや資金計画まで丁寧にアドバイスさせていただきます!

電話で問合せ

通話料無料

0120-055-774

定休日:水曜日
営業時間:9:30~18:00

ページトップ

ページトップ