_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

◇ 今年もサクラが咲きました ・・・・・・ 第719
☆モバイルオフィスの作り方 ★
Vol.0719

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

□ DropBox vs OneDrive
□ 楽しいサボのプログラミング講座ーその6

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ DropBox vs OneDrive
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ここしばらく環境関連の話題が多いのですが今日は私どもの基幹中の基幹である
ファイルサーバーの話題です。


◇ DropBoxが異常終了
昨年来、ファイルサーバーをDropBoxに移動しました。
会社に2台あるサーバーはDropBox経由で同期をとっていて、直接アクセスする
のはこの2台のサーバーなのですが正規サーバーはDropBoxと決めています。

1台は会社のオフィスに、もう一台は私のサテライトオフィスにあって、とも
に数テラの容量があるそこそこ巨大なサーバーです。

別にどちらか1台で同期して(バックアップになる)もう一台または私のクライ
アントPCがDropBoxと容量節約モードで同期してもよいのですが、成り行き上2
台とも完全なレプリケートをしています。

ところが困ったことに去年の年末頃からどちらのサーバーも"ドロップボック
スが異常終了しました"とか言って同記できなくなったのです。

同期できなくても会社とサテライトオフィスでは仕事の分担も違い、にわかに
困ることはないのですがちょっと不便です。

何より安全のためにバックアップを兼ねてドロップボックスを導入したのに
・・・
と困っていました。

◇ 原因は大量のデータと推測する
ところでDropBoxや次に出てくるOneDriveの名誉のために説明しますが、私ど
ものサーバーのファイル数は尋常ではありません。

今、復活したDropBoxが同期していますが、そのカウント数だけでも300万以上
のファイル数があり、皆さんのPCのファイル数とは桁が違います。

DropBoxでダウンするのもOneDriveが遅いのも決してこれらのサービスの性能
の問題ではなく、むしろ過酷な要求をしているからです。

それにしても・・・困った!

そこで一大決心をして不要なファイルを削除することにしました。

◇ そもそもなんでこんなに大量のファイルが??
調べた結果、ほぼ私達の日々の怠慢が原因です。

・ データの調査などで顧客のサーバーのLogをダウンロード
私達の仕事は業務システムの制作と運用支援なのですが、ほぼ毎日何らかの
データの調査の依頼や復旧の依頼がやってきます。

そのたびに過去10日とか場合によったら半年分とかのデータのLogを取り寄
せます。
Logは状況によりますが1日に数個は生成されますから難しい調査だと100個
から200個ほどのLogを取り寄せます。

これらはそれほど大きくないテキストファイルで、秀丸のGrepなどを使って
問題の発生やデータの時系列的な分析をし・・・・
問題を解決したら使ったLogを削除するか、せめて圧縮すればいいのです
が、"終わった!終わった!!"とそのままにしてしまったのです。

それも今年だけではなく、この数年ではなく・・・・

・ データの生成
例えばシステムを新しく作るときや現代風に載せ替える際には顧客のデータ
ベースを生成します。
できたデータベースはそれほど数は多くありませんが、その変換直前のデー
タは数万個から数十万個になります。

これもシステムが立ち上がったらせめて圧縮するべきなのですが、"いちお
う調査用に・・・"とか言っておいているうちにすっかり忘れてしまいま
す。

要は歴代のプログラマが私を筆頭に使った道具や材料を片付けていないので
す。

Logだって本物は顧客のサーバーにあるのですから使い終わったら全く必要な
いのですが・・・

◇ 悔い改めて削除に励む
このような事情で溜まりに溜まった不要なファイルを削除することにしまし
た。
結局容量で300Gほど、ファイル数では100万個以上をせっせと削除しました。

"困ることはないのか??"

あるかもしれませんが、その時はその時・・・・20年分ほどの怠慢を一気に解
決する気になりました。

その作業に1週間程かかりました。

◇ DropBoxに見切りをつける?
ファイルの整理とともに試みたのがOneDriveアプリの64bit版です。
もともとOffice365を使っていて私のOneDriveは5Tの領域があります。

でも旧OneDriveアプリでは同期の失敗が続いたり極端に速度が落ちたりとひど
い目にあって、DropBoxを借りることにしたのです。

とはいえ、OneDriveは対障害復旧性とかその他優れた機能があったので、少し
迷いましたが32bit版では改善が望めそうになく、DropBoxに移行したのです。

流石にDropBoxは専用のサービスだけあって、かなりの馬力で処理してくれま
したがちょうどその頃にマイクロソフトからObeDriveアプリの64bit版の発表
があり、大容量や多数ファイルの処理に向いているとのことでした。

もうDropBoxへの移行作業が始まっていたので後ろ髪を惹かれる思いで断念し
ました。

今回、試しに使ってみるとOneDrive64bitは安定していますしパワーも十分で
す。

◇ でもDropBoxにも最後のチャンスを
とはいえ、大量のデータを整理したあとですから同じ条件でDropBoxにもチャ
ンスを与えないと・・・と考えて一旦アンインストールしたDropBoxをサイド
セットアップしました。

もしこれでも落ちるようならOneDrive64に完全に移行するつもりだったのです。

ところが今度はDropBoxが強力に同期をしています。

こうなると判断に迷うところです。
OneDriveのサーバーの対障害復旧性はあるお客様のところで大事故が起こった
ときに実証済みで、私はとても信頼しています。

多分、ランサムウェアーなどに攻撃されても復旧できると思います。

とはいえ、単に同期するだけならDropBoxのシンプル性も捨てがたいものがあ
り、何より傍若無人な同期には魅力を感じます。
(OneDriveアプリはやや控えめで、他のアプリケーションやPCに負担をかけな
いようになっているようでどうしても遅い)


まだ最終的にどちらをメインに使うか決めあぐねていますがあと2日ほどでDropB
oxの同期が終わり、その後OneDrive64の実験を再開しますのでその後に決定しま
す。
ところでこの原稿はLinux(Debian)上のFireFoxで稼働している自作のHTMLエディ
ターで執筆しています。
LinuxのGoogleIME(Mozac)はかなり快適で、メルマガの執筆ではなんの問題もあ
りません。
次回の原稿はLinux上でも稼働するようになった秀丸で執筆してみようかと考え
ています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその6
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回は変数、それも配列変数というちょっと高度な話題でした。
ここはプログラミングの最初の難関で、そもそも変数というのが初めての体験な
のに、さらに配列変数というもう一段階難しい概念の説明でした。

◇ 前回のおさらい
変数というのは何かデータを格納する容器であり、自由に名前をつけて変数を
作ることが出来ると言うことをお話ししました。

さらに変数の応用で配列変数という数値で指定できる変数のこともご説明しま
した。なんで数値で指定する必要がある??と言うことが今回の話題です。

◇ 変数を数値で指定する(配列)の意味
例えば10個のデータを格納するのに10個の変数を用意してもよいのですが・
・・

var Total_1 = 0;
var Total_2 = 0;
var Total_3 = 0;


var Total_9 = 0;
var Total_10 = 0;

これで10個の数値変数が用意できました。どんな数でも10個の数を変数に格納
できます。
(JavaScriptには変数の型の指定は無いので最初に0を格納することで数値型変
数にする)

しかし、この変数を利用する際にはプログラムで角変数を直接指定する必要が
あります。
Total_1からTotal_10までを足し算する際には・・・・

var GrandTotal = GrandTotal  + Total_1;
GrandTotal = GrandTotal  + Total_2;
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

◇ 今年もサクラが咲きました ・・・・・・ 第719
☆モバイルオフィスの作り方 ★
Vol.0719

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

□ DropBox vs OneDrive
□ 楽しいサボのプログラミング講座ーその6

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ DropBox vs OneDrive
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ここしばらく環境関連の話題が多いのですが今日は私どもの基幹中の基幹である
ファイルサーバーの話題です。


◇ DropBoxが異常終了
昨年来、ファイルサーバーをDropBoxに移動しました。
会社に2台あるサーバーはDropBox経由で同期をとっていて、直接アクセスする
のはこの2台のサーバーなのですが正規サーバーはDropBoxと決めています。

1台は会社のオフィスに、もう一台は私のサテライトオフィスにあって、とも
に数テラの容量があるそこそこ巨大なサーバーです。

別にどちらか1台で同期して(バックアップになる)もう一台または私のクライ
アントPCがDropBoxと容量節約モードで同期してもよいのですが、成り行き上2
台とも完全なレプリケートをしています。

ところが困ったことに去年の年末頃からどちらのサーバーも"ドロップボック
スが異常終了しました"とか言って同記できなくなったのです。

同期できなくても会社とサテライトオフィスでは仕事の分担も違い、にわかに
困ることはないのですがちょっと不便です。

何より安全のためにバックアップを兼ねてドロップボックスを導入したのに
・・・
と困っていました。

◇ 原因は大量のデータと推測する
ところでDropBoxや次に出てくるOneDriveの名誉のために説明しますが、私ど
ものサーバーのファイル数は尋常ではありません。

今、復活したDropBoxが同期していますが、そのカウント数だけでも300万以上
のファイル数があり、皆さんのPCのファイル数とは桁が違います。

DropBoxでダウンするのもOneDriveが遅いのも決してこれらのサービスの性能
の問題ではなく、むしろ過酷な要求をしているからです。

それにしても・・・困った!

そこで一大決心をして不要なファイルを削除することにしました。

◇ そもそもなんでこんなに大量のファイルが??
調べた結果、ほぼ私達の日々の怠慢が原因です。

・ データの調査などで顧客のサーバーのLogをダウンロード
私達の仕事は業務システムの制作と運用支援なのですが、ほぼ毎日何らかの
データの調査の依頼や復旧の依頼がやってきます。

そのたびに過去10日とか場合によったら半年分とかのデータのLogを取り寄
せます。
Logは状況によりますが1日に数個は生成されますから難しい調査だと100個
から200個ほどのLogを取り寄せます。

これらはそれほど大きくないテキストファイルで、秀丸のGrepなどを使って
問題の発生やデータの時系列的な分析をし・・・・
問題を解決したら使ったLogを削除するか、せめて圧縮すればいいのです
が、"終わった!終わった!!"とそのままにしてしまったのです。

それも今年だけではなく、この数年ではなく・・・・

・ データの生成
例えばシステムを新しく作るときや現代風に載せ替える際には顧客のデータ
ベースを生成します。
できたデータベースはそれほど数は多くありませんが、その変換直前のデー
タは数万個から数十万個になります。

これもシステムが立ち上がったらせめて圧縮するべきなのですが、"いちお
う調査用に・・・"とか言っておいているうちにすっかり忘れてしまいま
す。

要は歴代のプログラマが私を筆頭に使った道具や材料を片付けていないので
す。

Logだって本物は顧客のサーバーにあるのですから使い終わったら全く必要な
いのですが・・・

◇ 悔い改めて削除に励む
このような事情で溜まりに溜まった不要なファイルを削除することにしまし
た。
結局容量で300Gほど、ファイル数では100万個以上をせっせと削除しました。

"困ることはないのか??"

あるかもしれませんが、その時はその時・・・・20年分ほどの怠慢を一気に解
決する気になりました。

その作業に1週間程かかりました。

◇ DropBoxに見切りをつける?
ファイルの整理とともに試みたのがOneDriveアプリの64bit版です。
もともとOffice365を使っていて私のOneDriveは5Tの領域があります。

でも旧OneDriveアプリでは同期の失敗が続いたり極端に速度が落ちたりとひど
い目にあって、DropBoxを借りることにしたのです。

とはいえ、OneDriveは対障害復旧性とかその他優れた機能があったので、少し
迷いましたが32bit版では改善が望めそうになく、DropBoxに移行したのです。

流石にDropBoxは専用のサービスだけあって、かなりの馬力で処理してくれま
したがちょうどその頃にマイクロソフトからObeDriveアプリの64bit版の発表
があり、大容量や多数ファイルの処理に向いているとのことでした。

もうDropBoxへの移行作業が始まっていたので後ろ髪を惹かれる思いで断念し
ました。

今回、試しに使ってみるとOneDrive64bitは安定していますしパワーも十分で
す。

◇ でもDropBoxにも最後のチャンスを
とはいえ、大量のデータを整理したあとですから同じ条件でDropBoxにもチャ
ンスを与えないと・・・と考えて一旦アンインストールしたDropBoxをサイド
セットアップしました。

もしこれでも落ちるようならOneDrive64に完全に移行するつもりだったのです。

ところが今度はDropBoxが強力に同期をしています。

こうなると判断に迷うところです。
OneDriveのサーバーの対障害復旧性はあるお客様のところで大事故が起こった
ときに実証済みで、私はとても信頼しています。

多分、ランサムウェアーなどに攻撃されても復旧できると思います。

とはいえ、単に同期するだけならDropBoxのシンプル性も捨てがたいものがあ
り、何より傍若無人な同期には魅力を感じます。
(OneDriveアプリはやや控えめで、他のアプリケーションやPCに負担をかけな
いようになっているようでどうしても遅い)


まだ最終的にどちらをメインに使うか決めあぐねていますがあと2日ほどでDropB
oxの同期が終わり、その後OneDrive64の実験を再開しますのでその後に決定しま
す。
ところでこの原稿はLinux(Debian)上のFireFoxで稼働している自作のHTMLエディ
ターで執筆しています。
LinuxのGoogleIME(Mozac)はかなり快適で、メルマガの執筆ではなんの問題もあ
りません。
次回の原稿はLinux上でも稼働するようになった秀丸で執筆してみようかと考え
ています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ 楽しいサボのプログラミング講座ーその6
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回は変数、それも配列変数というちょっと高度な話題でした。
ここはプログラミングの最初の難関で、そもそも変数というのが初めての体験な
のに、さらに配列変数というもう一段階難しい概念の説明でした。

◇ 前回のおさらい
変数というのは何かデータを格納する容器であり、自由に名前をつけて変数を
作ることが出来ると言うことをお話ししました。

さらに変数の応用で配列変数という数値で指定できる変数のこともご説明しま
した。なんで数値で指定する必要がある??と言うことが今回の話題です。

◇ 変数を数値で指定する(配列)の意味
例えば10個のデータを格納するのに10個の変数を用意してもよいのですが・
・・

var Total_1 = 0;
var Total_2 = 0;
var Total_3 = 0;


var Total_9 = 0;
var Total_10 = 0;

これで10個の数値変数が用意できました。どんな数でも10個の数を変数に格納
できます。
(JavaScriptには変数の型の指定は無いので最初に0を格納することで数値型変
数にする)

しかし、この変数を利用する際にはプログラムで角変数を直接指定する必要が
あります。
Total_1からTotal_10までを足し算する際には・・・・

var GrandTotal = GrandTotal  + Total_1;
GrandTotal = GrandTotal  + Total_2;
GrandTotal = GrandTotal  + Total_3;


GrandTotal = GrandTotal  + Total_9;
GrandTotal = GrandTotal  + Total_10;

これでGrandTotalと言う変数にTotal_1からTotal_10までの合計が計算できま
す。まあ・・・・10個程度なら可読性を考えてもこの方法でよいのですが、仮
に100個なら??または1000個ならどうでしょうか?

単に合計を取るだけで100行とか1000行のプログラムを書くのは馬鹿げていま
す。一般的には次のようにします。

for(i = 0; i < 10; i++){
    GrandTotal = GrandTotal  + Total[i];
}

この場合、Total_1と言う固定の名称の変数の代わりにTotal[]という配列変数
を使います。

上記と同じような書き方をするなら・・・

var Total = []; // Totalという配列変数を用意する
Total[0] = 230;
Total[1] = 5000;
Total[3] = 1325;
    ・
    ・
Total[9] = 225;
Total[10] = 330;

このように固定の変数名の代わりに配列変数(数値で指定できる変数)に数値を
格納すれば、上記のfor分で10回Loopさせれば終わりです。
"i < 10"を"i < 100"に変えれば100回Loopも一瞬で処理できます。

for(i = 0; i < 100; i++){
    GrandTotal = GrandTotal  + Total[i];
}

変数を数値で指定できる=配列変数は同じようなプログラムをたった3行で記
述できるのです。

◇ Loopは自動化の基礎
ここで初めて出てくるLoop処理は自動化の基礎であり、プログラムの基礎中の
基礎です。
他にもwhileと言う処理もあるのですが私は基本的にfor処理しか使いません。
Loop処理の中では最高速だからです。

for(i = 0; i < 100; i++){
    // この部分を100回繰り返す
    // この部分には繰り返したい処理を複数行書くことが出来る
    // 1回通過するごとにiは1づつ増加する
    GrandTotal = GrandTotal  + Total[i];
}

最初の1回目はiは0であり、次に1になり2になり99で終わる。
これを別の書き方をすれば・・・・

GrandTotal = GrandTotal  + Total[0];
GrandTotal = GrandTotal  + Total[1];
GrandTotal = GrandTotal  + Total[2];
            ・
            ・
GrandTotal = GrandTotal  + Total[97];
GrandTotal = GrandTotal  + Total[98];
GrandTotal = GrandTotal  + Total[99];

という100行のプログラムが必要です。この100行を3行で処理できるのがLoop
であり、そのLoopの中で変化する数は"i"であり、そのiで変数を間接的に指定
することが出来るので配列変数は強力なのです。

◇ 例えばExcelのVBAでセルを指定する場合・・・・
Excelではセルを”A5”とか”B3”とか呼びます。
Excelのプログラミング言語であるVBAでセルの中身を参照する場合には・・・

GrandoTotal = Range("B3") + Range("B4") + Range("B5") + Range("B6")

と書けばGrandoTotalと言う変数にB3からB6までに入力した4個のセルの値を格
納できます。
でも同じことを別の書き方をすると・・・・

For I = 3 to 6
    GrandoTotal = GrandoTotal + Cells(I, 2)
Next
(JavaScriptと言語の出胃が違うので同じForLoopでも少し書き方が違う。
もしJavaScriptで書けば・・・・
    for(i = 3; i <= 6; i++){
           GrandoTotal = GrandoTotal + Cells[i][2];
       }
    と言う書き方になる。
}

となります。Excelのワークシートは列と行の2次元なので配列も2次元にな
り、Range(B3)はCells(3, 2)と記述できます。

Cells(行, 列)なのです。

この場合列はBで左から2番目ですから2で固定で、行だけが3〜6に変化します。
したがってForループも3〜6を指定します。

たった4個のセルですからLoopにするメリットはあまりありませんが、これが
100行ほどの計算ならRangeを使って100行のプログラムをしてはいけません。

必ずFor NextのLoopを使いましょう。

配列変数というのはExcelのセルをB5と呼ぶのではなく、Cells(5, 2)と呼ぶこ
とと似ています。
数値でセルを指定できるとLoopにとても便利なのです。


さて、今回は配列変数の意味についてご説明しました。
配列変数は変数を数値で指定できる変数であり、Loop処理などの繰り返し処理で
は必須です。
2次元の配列変数を私たちにわかりやすく使わせてくれているのがExcelである
・・ と言うこともご理解いただけましたでしょうか。

配列変数を理解することはコンピュータを理解することなのです。
次回は単純な足し算ではなくてキー移動に配列変数を使っている実際の内容に沿
ったご説明をします。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
http://sabot.jp/MailMagazine/Merumaga.html
==========================================
★発行責任者:
 (有)ファクトリー・サボ
  真鍋隆彦
 兵庫県神戸市垂水区東舞子町9-9
           マリタイム舞子501号
 Tel:078-787-3602 Fax:078-787-3619
 Mail:manabe@sabot.co.jp
 http://www.sabot.co.jp/
 ☆ソフトウェアーギャラリーに遊びに来てください
  https://secure3552.sakura.ne.jp/sabot.jp/Mitumori/
==========================================
 
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
 
◎モバイルオフィスの作り方
  の配信停止はこちら
⇒ https://www.mag2.com/m/0000109792.html?l=ywj17bb991
GrandTotal = GrandTotal  + Total_3;


GrandTotal = GrandTotal  + Total_9;
GrandTotal = GrandTotal  + Total_10;

これでGrandTotalと言う変数にTotal_1からTotal_10までの合計が計算できま
す。まあ・・・・10個程度なら可読性を考えてもこの方法でよいのですが、仮
に100個なら??または1000個ならどうでしょうか?

単に合計を取るだけで100行とか1000行のプログラムを書くのは馬鹿げていま
す。一般的には次のようにします。

for(i = 0; i < 10; i++){
    GrandTotal = GrandTotal  + Total[i];
}

この場合、Total_1と言う固定の名称の変数の代わりにTotal[]という配列変数
を使います。

上記と同じような書き方をするなら・・・

var Total = []; // Totalという配列変数を用意する
Total[0] = 230;
Total[1] = 5000;
Total[3] = 1325;
    ・
    ・
Total[9] = 225;
Total[10] = 330;

このように固定の変数名の代わりに配列変数(数値で指定できる変数)に数値を
格納すれば、上記のfor分で10回Loopさせれば終わりです。
"i < 10"を"i < 100"に変えれば100回Loopも一瞬で処理できます。

for(i = 0; i < 100; i++){
    GrandTotal = GrandTotal  + Total[i];
}

変数を数値で指定できる=配列変数は同じようなプログラムをたった3行で記
述できるのです。

◇ Loopは自動化の基礎
ここで初めて出てくるLoop処理は自動化の基礎であり、プログラムの基礎中の
基礎です。
他にもwhileと言う処理もあるのですが私は基本的にfor処理しか使いません。
Loop処理の中では最高速だからです。

for(i = 0; i < 100; i++){
    // この部分を100回繰り返す
    // この部分には繰り返したい処理を複数行書くことが出来る
    // 1回通過するごとにiは1づつ増加する
    GrandTotal = GrandTotal  + Total[i];
}

最初の1回目はiは0であり、次に1になり2になり99で終わる。
これを別の書き方をすれば・・・・

GrandTotal = GrandTotal  + Total[0];
GrandTotal = GrandTotal  + Total[1];
GrandTotal = GrandTotal  + Total[2];
            ・
            ・
GrandTotal = GrandTotal  + Total[97];
GrandTotal = GrandTotal  + Total[98];
GrandTotal = GrandTotal  + Total[99];

という100行のプログラムが必要です。この100行を3行で処理できるのがLoop
であり、そのLoopの中で変化する数は"i"であり、そのiで変数を間接的に指定
することが出来るので配列変数は強力なのです。

◇ 例えばExcelのVBAでセルを指定する場合・・・・
Excelではセルを”A5”とか”B3”とか呼びます。
Excelのプログラミング言語であるVBAでセルの中身を参照する場合には・・・

GrandoTotal = Range("B3") + Range("B4") + Range("B5") + Range("B6")

と書けばGrandoTotalと言う変数にB3からB6までに入力した4個のセルの値を格
納できます。
でも同じことを別の書き方をすると・・・・

For I = 3 to 6
    GrandoTotal = GrandoTotal + Cells(I, 2)
Next
(JavaScriptと言語の出胃が違うので同じForLoopでも少し書き方が違う。
もしJavaScriptで書けば・・・・
    for(i = 3; i <= 6; i++){
           GrandoTotal = GrandoTotal + Cells[i][2];
       }
    と言う書き方になる。
}

となります。Excelのワークシートは列と行の2次元なので配列も2次元にな
り、Range(B3)はCells(3, 2)と記述できます。

Cells(行, 列)なのです。

この場合列はBで左から2番目ですから2で固定で、行だけが3?6に変化します。
したがってForループも3?6を指定します。

たった4個のセルですからLoopにするメリットはあまりありませんが、これが
100行ほどの計算ならRangeを使って100行のプログラムをしてはいけません。

必ずFor NextのLoopを使いましょう。

配列変数というのはExcelのセルをB5と呼ぶのではなく、Cells(5, 2)と呼ぶこ
とと似ています。
数値でセルを指定できるとLoopにとても便利なのです。


さて、今回は配列変数の意味についてご説明しました。
配列変数は変数を数値で指定できる変数であり、Loop処理などの繰り返し処理で
は必須です。
2次元の配列変数を私たちにわかりやすく使わせてくれているのがExcelである
・・ と言うこともご理解いただけましたでしょうか。

配列変数を理解することはコンピュータを理解することなのです。
次回は単純な足し算ではなくてキー移動に配列変数を使っている実際の内容に沿
ったご説明をします。
━━━━━━━━━━━━━━━━━━━━━━ 
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
 
 
新規登録・解除はこちら
      ↓
http://sabot.jp/MailMagazine/Merumaga.html
==========================================
★発行責任者:
 (有)ファクトリー・サボ
  真鍋隆彦
 兵庫県神戸市垂水区東舞子町9-9
           マリタイム舞子501号
 Tel:078-787-3602 Fax:078-787-3619
 Mail:manabe@sabot.co.jp
 http://www.sabot.co.jp/
 ☆ソフトウェアーギャラリーに遊びに来てください
  https://secure3552.sakura.ne.jp/sabot.jp/Mitumori/
==========================================
 
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
 
◎モバイルオフィスの作り方
  の配信停止はこちら
⇒ https://www.mag2.com/m/0000109792.html?l=ywj17bb991