自立学習×個別指導

NextStage

学習塾 ネクストステージ

埼玉県川越市大字砂935-6

新河岸駅下車徒歩2分

電話 049-265-8994

FAX 049-265-8640

2015/09/24

【EXCEL_VBA】最短講座③ 繰り返しのFor文

EXCELの自動化を実現するVBAマクロを、「とりあえず使ってみたい」という人のために、最短で説明する講座です。(Excel2010で説明します。)
※( )内にAlt+Fと書かれている場合には、キーボードのAltキーとFキーを同時に押せば、該当するタブを開けます。

 

前回はRange関数を利用してセルに入力してみました。
↓前回までのコード
————————————
Sub テスト()
Dim i As Long
Dim j As String

 

i = 1
j = “月”
Range(“A1”) =i & j

 

End Sub
————————————
このコードを引き続き使います。
今回は、「たくさんのセルに自動で入力」することを学んでみましょう。

 

①Range関数とCells関数を学ぶ
ここでRange関数とCells関数について、学習しておきましょう。これからいろんなマクロを組むのに必要になりますので、少し時間をかけていきます。すでに知っている人は②へ。
※これからの指示は、前回のコードを書き換えながら実行します。実行するたび、シートに書かれた数字は消してください。

 

・Range(“A1”)をCells(1,1)に置き換える⇒マクロの実行
⇒実行すると同じ動作をするはずです。

 

・Cells(1,1)をCells(2,1)に置き換える⇒マクロの実行
⇒書き込まれる位置がひとつ下に移動しましたね。

 

・Cells(2,1)をCells(2,2)に置き換える⇒マクロの実行
⇒書き込まれる位置がひとつ右に移動しましたね。

 

つまり、Cells(●,■)という関数は、上から●行(縦の位置)、左から■列(横の位置)のセルを表すのです。

 

・Cells(2,2)をRange(“A1:C4”)に置き換える⇒マクロの実行
⇒A1とC4を結ぶ長方形の内側すべてが選択されます。

 

本来Rangeとは、選択する”範囲”を表しますので、Range(“選択する左上,選択する右下”)のように書きます。
Range(“A1”)の方が書き方としては例外的です。Range(“A1:A1”)の省略形です。

 

・Range(“A1:C4”)をRange(Cells(1,1),Cells(4,3))に置き換える⇒マクロの実行
⇒選択範囲は変わらないはずです。Cells(1,1)がA1のセル、Cells(4,3)がC4のセルを表しますので同じ範囲を選択することになります。マクロでは、Range(開始位置、終了位置)をよく使います。覚えておいてください。

 

【アドバイス】Range関数の場合、たとえばRange(“D3”)だとDが横の位置、数字が縦の位置を表すので、縦・横の指定の順番がRangeは横⇒縦とCellは縦⇒横というように異なります。私はCells関数を使うことが多いです。そうなると、シートの列表示が、A,B,・・・とアルファベットになっていると、”K”って何列目?となりますので、アルファベット表示から数字表示に変えたほうが便利です。
ファイル(Alt+F)⇒オプション(Alt+T)⇒数式⇒R1C1参照形式を使用する(Alt+R)
これで、コードが打ちやすくなります。

 

②Range(“A1”) =i & j を Cells(i,1)=i & jに置き換える。
————————————
Sub テスト()
Dim i As Long
Dim j As String

 

i = 1
j = “月”
Cells(i,1)=i & j

 

End Sub
————————————
(説明)iには数字の1が入っていますので、Cells(i,1)はCells(1,1)と同じです。ここまででは動作は変わりません。

 

③For文を組み込む
i=1 を For i=1 to 12 に置き換えEnd Sub の前に、Next i と書き込みます。
とりあえず書いてみましょう。
————————————
Sub テスト()
Dim i As Long
Dim j As String

 

For i = 1 to 12
j = “月”
Cells(i,1)=i & j

 

Next i
End Sub
————————————
ここまで実行すると、一番左の列に、上から1月、2月、3月・・・12月と表示されているはずです。
(説明)For文を使い、iに順番に1から12まで数字を代入して操作します。ForからNextまでのあいだを繰り返すわけです。iが5のときは、Cells(5,1)に”5月”と入力されます。

 

④無駄な繰り返しを避ける。
複雑なFor文を作ると、動作が遅くなる可能性があります。それ防ぐためにも無駄な繰り返しは避けましょう。
さきほど書いたコードで無駄な部分はわかりますか。
答えは、i =”月”の部分です。ここがForとNextのあいだにあるので、毎回、iに”月”を代入しています。一度代入すれば良いのでForの前に出しましょう。ついでにコードを見やすくします。

 

————————————
Sub テスト()
Dim i As Long
Dim j As String
j = “月”

 

For i = 1 to 12
Cells(i,1)=i & j
Next i

 

End Sub
————————————
(説明)ForとNextのあいだは、Tabキーを押して一段下げた状態で表示しておきます。そうすると、どこからどこまでが繰り返されているかわかりやすいです。

 

⑤コメントを追加する。
コードを入力していると、自分自身で何を入力しているのかわからなくなります。
そこで、コメントを残しておきます。
コメントはコードと区別するため ‘(シングルクオテーション)を付けます。(Shiftを押しながら7)
ExcelのVBAではコメントが緑色で表示されます。
取り合えずすべてにコメントをつけておきます。

———————————-
Sub テスト()
Dim i As Long ‘iは数字
Dim j As String ‘ jは文字列
j = “月”  ‘jに月を代入

 

‘▼ iは1から12まで繰り返し
For i = 1 to 12
Cells(i,1)=i & j ’1列目のセルに入力
Next i
‘▲

 

End Sub
————————————

 

コードやコメントはできるだけ見やすく書きましょう。いずれ、書き換える必要が出てきますので・・・。

 

今回はここまで。

 

次回はIF文で条件分岐を学習します。

2015/09/18

【EXCEL_VBA】最短講座② セルに値を入力

EXCELの自動化を実現するVBAマクロを、「とりあえず使ってみたい」という人のために、最短で説明する講座です。(Excel2010で説明します。)
※( )内にAlt+Fと書かれている場合には、キーボードのAltキーとFキーを同時に押せば、該当するタブを開けます。

 

前回マクロを有効にして、標準モジュールを作成しました。

 

今回は標準モジュール内に、簡単なコードを書いてみようと思います。

 

①『sub テスト()』と書き、Enterを押します。
※大文字、小文字は注意する必要はありません。自動的に見やすいようにしてくれます。

 

②するとコードが下のようになるはずです。
————————————
Sub テスト()

 

End Sub
————————————
(説明) Sub ●●●() のかたちで、このマクロ(コード・命令)に名前を付けます。●●●は英数でもひらがな、漢字でもOKです。Subと●●●の間にはスペースが入ります。コードを書く上で、スペースも役割を果たしますので注意して入力してください。End Sub とは、このマクロの終了場所を表しています。つまり、Sub ●●●()からEnd Subのあいだが今回作成するマクロのコードになるのです。

 

③変数を宣言します。
プログラミングがはじめての人は戸惑うかも知れませんが、変数というものを宣言します。
とりあえず書いてみましょう。
————————————
Sub テスト()
Dim i As Long
Dim j As String

 

End Sub
————————————
(説明)iとjという変数を使うことをアピールしているわけです。そしてiは数字で、jは文字を格納するのに使うよ~、と示しています。
As LongやAs Stringは省略してもかまいません。

 

④Excelのセルに値を入力させる。
わかりやすいRange関数を使って、セルに値を入力します。
————————————
Sub テスト()
Dim i As Long
Dim j As String

 

i = 1
j = “月”
Range(“A1”) =i & j

 

End Sub
————————————
(説明)変数iに1を、変数jに月という文字を代入しておきます。(文字をあらわす場合には” ”で囲みます。)これでiは1,jは月に変身したわけです。このように数字や文字を格納(代入)できるものを変数と言います。Range(“A1”)とは、A1のセルをあらわします。そして今回は、A1のセルにiとjをくっつけた『1月』を入力するようにしています。文字をくっつけるときには&を使います。

 

⑤マクロを実行してみる
ウィンドウの上の方の実行ボタン(右向きの▲)を押します。
実行したあと、シートを確認すると、A1のセルに『1月』と入力されているはずです。

 

今回はここまで。

 

次回はFor文で繰り返し演算を学習します。

2015/09/18

【EXCEL_VBA】最短講座① 下準備

EXCELの自動化を実現するVBAマクロを、「とりあえず使ってみたい」という人のために、最短で説明する講座です。(Excel2010で説明します。)
※( )内にAlt+Fと書かれている場合には、キーボードのAltキーとFキーを同時に押せば、該当するタブを開けます。

 

①EXCELを開く

 

②マクロが有効かどうか確かめる
ファイル(Alt+F) ⇒ オプション(Alt+T) ⇒ セキュリティセンター ⇒ セキュリティセンターの設定(Alt+T)
特にあやしいファイルを開く可能性がな場合には「すべてのマクロを有効にする」
※設定を変更した場合は、EXCELを閉じて、開きなおしてください。

 

③開発タブを表示する(しておいた方が便利です。)
ファイル(Alt+F) ⇒ オプション(Alt+T) ⇒リボンのユーザー設定
「開発」のチェックボックスをオンにします。

 

④VBAを開く
(Alt+F11) or (開発タブのVisualBasicのボタンからも開けます。)

 

⑤標準モジュールを挿入する。
挿入(Alt+I)⇒ 標準モジュール(Alt+M)

 

以上で下準備は完了です。
2回目以降は②と③は必要ありませんので、1分以内でできます。

 

次は標準モジュール内にコード(命令)を書き込んでいきましょう。

学ぶのが楽しくなり積極的に勉強する子が育つ学習塾のお役立ちブログです

新河岸にあるNextStageは、勉強させる、教えるという方針ではなく、生徒一人一人が自らの意思で積極的に学ぶことができる環境を整えております。自分の弱点や苦手分野を把握して生徒をサポートするパソコンとともに、理解できる楽しさを噛みしめながら前へと進んでいき、成績アップへとつなげていけます。
自ら学ぶ力がつく学習塾NextStageのブログでは、ご自宅からも簡単にアクセスして学べる家庭学習支援ツールの配信や、中学受験や高校受験などに役立つ情報やアドバイスを掲載しております。
塾だけでは物足りず、もっと勉強したいときや、受験勉強でつまずいたとき、不安になってしまったときに、新河岸のNextStageのブログをご覧ください。

→TOPに戻る