しままるの雑記帳

しままるの思ったことや考えたことをアウトプットする場。「PC/プログラミング」「写真/旅行」「科学(勉強)」「心の問題」が主なテーマ。

プログラミング

Excelマクロにおける基本文法(繰り返しと分岐)

投稿日:2017年4月28日 更新日:

マクロにおける基本文法(for文とif文)

プログラミング言語でよく使われるのが繰り返し文と分岐文です。もちろんVBAでも、繰り返しや分岐の操作をすることができます。今回はその方法の備忘録です。

※マクロを全く使用したことのない方はこちら

繰り返し(for文)

VBAでもC言語と同じようにfor文が使用できます。サンプルプログラムを以下に示します。サンプルプログラムには1行ごとに説明が書かれています。

※プログラムここから※

Sub roop()

Dim i As Integer
‘for文で使用する変数iの定義
Dim num As Double
‘変数numの定義

With Worksheets(“Sheet1”)
‘ワークシート「Sheet1」で作業します。
.Cells(1, 1) = 1
‘(1,1)セルに1を代入します。この時点で(1,1)セル,A1セルに1が表示されます。
num = .Cells(1, 1)
‘変数numに(1,1)セルの値を代入します。

‘For文ここから
For i = 1 To 10
‘iの値が1から10まで繰り返し処理します。
.Cells(i, 2) = num * i
‘(i,2)セルにnum*iを代入します。
Next i
‘iの値を次の値に更新して(1の次は2)For文冒頭へ戻ります。
‘For文ここまで

For i = 1 To 10 Step 2
‘iの値をStep 2と入力すればiの値を1個スキップすることができます。
.Cells(i, 3) = num * i
Next i
‘iの値が1だった場合、次のiの値は3になります。

End With
End Sub

※プログラムここまで※

これを実行すると以下のような画面になります。

これで、VBAにて繰り返し処理ができました

条件分岐文(if文)

サンプルプログラムを示します。

※プログラムここから※
Sub even_odd()

Dim i As Integer
Dim num As Double

With Worksheets(“Sheet1”)
.Cells(1, 1) = 1
num = .Cells(1, 1)

For i = 1 To 10 Step 1
‘iの値が1から10まで繰り返し処理します。

If i Mod 2 = 0 Then
.Cells(i, 2) = num * i
‘もし、iの値が2で割ってゼロ(偶数)だったら、2列目(B列)に数字を表示してください。
Else
.Cells(i, 3) = num * i
‘もし、上記にあてはまらないiの数だったら(奇数)、3列目(C列)に数字を表示してください。
End If ‘if文を終わります。
Next i

End With
End Sub

※プログラムここまで※

これを実行すると以下のような画面になります。

ちなみにこれはiが整数型だからできるプログラムです。

まとめ

VBAでもfor文やif文が使えますということで、実際に使ってみたという内容でした。私は使えるのは分かってるんだけど、VBAの場合、文法どんなだっけ??と考えてネットで検索することが多いです。ネットで検索するくらいだったら自分で備忘録を書いてしまおう。と思って書きました。
上記サンプルプログラムは、そのままコピーアンドペーストすれば使えるようになっています。ぜひ、自分でコピーアンドペーストして遊んでみてください。色々遊んでいるうちにプログラミングができるようになってきます。

-プログラミング

執筆者:


comment

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

関連記事

イントロクイズの作り方 ~soxの使い方を解説~

目次1 soxとは?1.1 対話型音声ファイル編集ソフト sox1.2 コマンドで編集を進める意味2 soxのコマンド2.1 切り取り2.2 フェードイン・フェードアウト2.3 その他3 イントロクイ …

簡単図説!自作PCを作ってみよう!

目次1 はじめに2 部品を揃える3 ハードウェアの組み立て3.1 CPUとクーラーをマザーボードに取り付ける3.1.1 グリースを塗る3.1.2 CPUをマザーボードに載せる3.1.3 CPUファンの …

[備忘録] C++における連番ファイルの作り方

目次1 C++で連番ファイルをつくる2 サンプルプログラム3 プログラムの説明3.1 動作説明3.2 アルゴリズム説明3.2.1 クラスOutput メンバ関数Formatの説明3.2.2 main関 …

自作PC作成フロー(スマホ版)

このページは  しままるの雑記帳 簡単図説!自作PCを作ってみよう!http://shimaphoto03.com/program/pc-make/目次を↓のページでフローチャート …

無料コンピュータシミュレーションソフト OpenFOAMをubuntu16.04LTSへインストールしよう

目次1 インストール手順2 OpenFOAMのホームページへ行く3 OpenFOAMのダウンロード・インストール4 テスト計算5 まとめ 無料でCAEを体験!OpenFOAMをubuntuにインストー …