| アクセスアップ講座 TOPページへ移動 |
|
| 前ページへ | No 51 | 次ページへ |
| ● Excelでプログラムを理解する (注) このマクロはExcel2000で作成しました。Excel2007での動作確認はしていません。 ≪山本≫ さぁ、皆さんが見ているプログラムはこんなものですよね。
|
||
|
≪綾小路≫ なんか英語だよ英語・・・ へんな数字や足し算の計算も書いてあるよ。 ≪山本≫ まぁ、はじめてみるとギャッ!って思います。 慣れですよ慣れ。 難解そうですけど、たった13行のプログラムで さっきのような表1万人分を一瞬に作れるわけですから、それはそれで価値があるでしょう。 ≪綾小路≫ まぁ、そういわれればそうだが、1万人分のデータをコピー・貼付けするのも大変だけど、 これを理解するのも大変そうだな。 ≪山本≫ 1行1行じっくり見ていけば、そんなに難解なものじゃないです。 |
||
| まず、1行目のSub HyouSakusei() と13行目のEnd Sub これは対になっていて、1行目から13行目までがひとつのプログラムですよ。 そして、そのプログラム名はHyouSakuseiつまり、表作成プログラムです。といっているのです。 ≪綾小路≫ そんな感じでゆっくり解説してちょんまげ・・・ ≪山本≫ (2) MotoData_Endという名前の長整数型(数値で32ビット)の変数と呼ばれる記憶領域を作ります、という意味。後に複写元データの一番下の行番号を記憶させます。 (3) やはりCoyeGyouという名前の記憶領域を作ります、という意味。後に複写先のデータを貼付ける行番号を記憶させます。 (4) MotoData_Endに複写元データの一番下の行番号を記憶させるプログラムです。 (5) セルH1〜K1は青色で各項目名が入力されていますから、コピー貼り付けするのは2行目からよ、という意味でCoyeGyouに最初に2を記憶させています。 (6)〜(11) 複写元データの行番号1〜一番下の行番号まで処理を繰り返します、という意味です。Step 4は1回反復するごとに4づつ増やすということです。 ここで、元データを見て下さい。一人につきデータは4行使っています。つまり4づつ増やすと、1、5、9、13・・・つまりそれぞれの名前の行になることが判るでしょう。 この様な繰り返し処理をループと呼んでいます。 セル番地の指定をする際に Cells(行番号,列番号) という表現をしています。つまりセルA1ならCells(1,1)、A2ならCells(2,1)、B1ならCells(1,2)ということになります。 (7)〜(10) のCells(x,x) = Cells(y,y).Valueという記述は、Cells(y,y)のセルに入っている値をCells(x,x)のセルに複写しますという記述です。 繰返し構文 For〜nextでは繰返し処理がされます。 その際に、gyouとCopyGyouは値が変わっていきます。 1回目のループ処理では、gyou=1、CoyeGyou=2 ですから、(7)〜(10)の処理は、次のようになります。 Cells(2, 8) = Cells(1, 2).Value ・・・・・ セルB1の値をセルH2に複写する。 Cells(2, 9) = Cells(2, 2).Value ・・・・・ セルB2の値をセルI2に複写する。 Cells(2, 10) = Cells(3, 2).Value ・・・・ セルB3の値をセルJ2に複写する。 Cells(2, 11) = Cells(4, 2).Value ・・・・ セルB4の値をセルK2に複写する。 その後 (11)の記述 CoyeGyou = CoyeGyou + 1 は、既にCoyeGyouに代入されている2に1足した3を新たにCoyeGyouに代入するということです。 2回目のループ処理では、gyou=5、CoyeGyou=3 となっています。そこで(7)〜(10)の処理は、次のようになります。 Cells(3, 8) = Cells(5, 2).Value ・・・・・ セルB5の値をセルH3に複写する。 Cells(3, 9) = Cells(6, 2).Value ・・・・・ セルB6の値をセルI3に複写する。 Cells(3, 10) = Cells(7, 2).Value ・・・・ セルB7の値をセルJ3に複写する。 Cells(3, 11) = Cells(8, 2).Value ・・・・ セルB8の値をセルK3に複写する。 その後 (11)の記述 CoyeGyou = CoyeGyou + 1 は、既にCoyeGyouに代入されている3に1足した4を新たにCoyeGyouに代入します。 3回目のループ処理では、gyou=9、CoyeGyou=4 となっています。そこで(7)〜(10)の処理は、・・・今度はご自分で考えてみて下さい。 いかがですか、Webプログラミングではありませんが、プログラムとはこういう様に記述して、コンピュータにその手順通り実行させるのです。 さて今度は、このExcelマクロでホームページを作ってみます。 |
||
|
|||||
| 前ページへ | No 51 | 次ページへ |
サイト提供:検索ネットショップ
|
|||
| お得ネットショップ検索エンジン | フリーで無料のマルチ検索窓 | 一括依頼!相互リンク倶楽部 | 地域の情報検索ナビ |