Excelマクロ…サンプル!

ちょっと、ブログのほうにプラグイン追加をしてみたので、お試しも含めて、ちょっとコードサンプルを書いてみましょう…というチャレンジ。
例によって、エロは少なめなんであしからず!

繰り返し処理で使えるサンプル

Sub 繰り返し()
Dim i As Long

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 1) = i
Next

End Sub

ざっくり解説!

Dim i As Long

定番的な書き方過ぎてほとんど開設されない一文ですが、変数の宣言というやつですね。変数を宣言するっていうのは、マクロの基礎過ぎるお話です。国語でひらがなの練習をして50音すべてをかけるようになるくらい基本です。ここをおろそかにすると、後々困ることも多々ありますので、これからおぼえちゃろ!っていう人々は、この辺を省かずにやっていきましょうね!
で、「変数の宣言はわかった、でも『i』ってなんだよ!わけわかんねぇよ!」っていう人…本当に多いです。結論から言えば、なんでもいいんです。『i』である必要はないです。「a」でも「b」でも「c」でも好きなアルファベット使ってください。いや、「一」でも「数」でも日本語も問題ないです。ただし、数字で始まるような「1a」とか「3C」とか…おめぇらはダメだ!(ルールの縛り)
この「なんでも良い」っていうのは混乱のもとになることが多いので、多くの本や資料では、「i」とかを使うわけですね。じゃあ、なんで「i」なのかというと、英語で整数のことを「Integer」というので、その頭文字をとって「i」としているというのが通説ですね。自分も「そういうこと」として納得して使っています。
「『i』はわかった!その次にあるけったいな文字はなんじゃい!」ということになりますね、わかりますわかります。よくある表現としては、「箱に入れるモノを指定する」という言葉が使われます。つまり、「i」と指定した「箱」(変数)の中に入れることができるモノ(値)を指定するんです。おもちゃはおもちゃ箱!という感じですね。この辺は、マクロを作って行けば慣れてくるところですので、迷ったら「Variant」と書いておけばほぼほぼ間違いがないでしょう。Variantが何かというと、一軒家みたいなもので、家具も入るし、人も入れられる。車庫もあれば、ペットだって受け入れてくれるので、「なんでも入れられる箱」という表現をされるものです。
…最初の1行だけでこんなに説明をする人はほとんどいないと思います…が、ここがわからずに進めない人も多々いるということもわかっていますので、異常なくらいに細かく説明しました。…まぁ、かえってわからなくなった人も多いと思いますが、その人は…ガンバ!w

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 1) = i
Next

こちらは、解説をしているサイトも資料もたくさんあるのでさらっと行きましょう。今回のテキストで一工夫入っているのは、「Cells(Rows.Count, 1).End(xlUp).Row」というところくらいで、そのほかは普通によくある表現です。「変数「i」に2からtoの後ろで指定した値になるまで繰り返す」という処理なわけです。Toの後ろには終わりとしたい値を直接入力する使い方が多いです。エクセルの縦に長い表をを想像してもらって、その最終行を指定する感じですね。目で見てわかればその値を入力すれば問題ないわけです。…が、いつも最終行がわかるとは限らないので、「Cells(Rows.Count, 1).End(xlUp).Row」という表現を使っているわけです。これが何をしているのかというと、エクセルシート自体の最終行(100万行ちょっとのところ)を指定し、Ctrlキー+「上」矢印キーを押したのと同じ操作をコードで表現したものです。こうすることで、外部からシートを持ってきたばかりで最終行が判別できなくても、コマンド一つで対応できちゃうっていうことですね。この表現はめちゃくちゃ使い勝手がいいので、「マクロを作る!」と思ったら、この表現を使うものと思ってもらって支障はないと思います。

Sub 繰り返し()
(中略)
End Sub

めんどくさい言葉を使うと、「サブプロシージャ」というものを指定しているのが頭の「Sub ほにゃらら」と、お尻の「End Sub」です。この間に書かれていることが実際に行われる操作ですね。真面目な顔で、「Subって何ですか?」って何度も聞かれたことがありますが、「書かなきゃ使えないものです。パソコンの電源を入れて、切るまでの行動を表したもの」くらいの感じで回答していきたいものですね。

今回のことが理解できているのならば、あなたはマクロが作ることができる人間です!自信を持っていいと思います。できると思うことがめちゃくちゃ大事ですし、そのうえで、数をこなしていくと、洗練されていきますので、どんどん作っていきましょ~。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA