Excelマクロの記録で覚えるVBA
第5回.100マスに数値を入れる

Excelマクロの自動記録を使って、エクセルVBAの初心者向け入門解説
最終更新日:2013-02-18

第5回.100マスに数値を入れる


まずは、前回の宿題の回答です。


Sub Macro1()
  Dim i
  i = 1
  Do While i <= 10
   Cells(1, i) = i
   i = i + 1
  Loop
End Sub


縦に入れた時の、この部分を
Cells(i, 1) = i

Cells(1, i) = i
このように、行数と列数を入れ替えます。

これで横に1~10が入ります。



では次は、縦10、横10のセルに、1~100までを入れてみましょう。


こんな感じに入れます。


Excel VBA 解説

どうでしょうか、マクロを作成してみて下さい。

こんなプログラムになります。


Sub Macro1()
  Dim i
  Dim j
  Dim k
  i = 1
  k = 1
  Do While i <= 10
    j = 1
    Do While j <= 10
     Cells(i, j) = k
     k = k + 1
     j = j + 1
    Loop
    i = i + 1
  Loop
End Sub


急に長いプログラムになってしまった感じですが、順番に考えましょう。


iは、行数に使用します。

jは、列数に使用します。

kは入れる数値です。


そして、10行に入れるプログラムは、

i = 1
Do While i <= 10
  Cells(i, 1) = i
  i = i + 1
Loop

でした。

この1行に数値を入れる部分を10列に入れるようにすればよいのです。

i = 1
Do While i <= 10

  10列に入れる

  i = i + 1
Loop

つまり、

Cells(i, 1) = i

j = 1
Do While j <= 10
  Cells(i, j) = 連番

  j = j + 1
Loop

にするのです。

すると、

i = 1
Do While i <= 10
  j = 1
  Do While j <= 10
    Cells(i, j) = k
    j = j + 1
  Loop
  i = i + 1
Loop

となります。


後は、kを1ずつアップしていけば、最初のプログラムが出来上がります。



エクセルのシートは、縦横の2次元ですから、


上記のプログラムが作成出来れば、


シートの好きな位置に、好きな数値、好きな文字を入れる事が可能です。


前回も言いましたが、これが、VBAの基本であり、全てでもあります。


このプログラムを3分以内に作成出来れば、とりあえずは合格でしょう。


今回はこれだけにします。


これが十分に理解出来なければ、次に進む意味がありません。


もう一度言います。


これが基本です、腹の底に落としこんで下さい。


次回は、この100マスを、別のシートにコピーしてみましょう。


それが出来たら、縦横を入れ替えてコピーします。


ここが正念場です、ここを過ぎれば、VBAが楽しいものに変わります。





同じテーマ「Excelマクロの記録で覚えるVBA」の記事

第2回.セルに文字を入れる

前回の復習、ちゃんとやりましたか(笑) もう一度だけ書きます、これでお終いです、覚えて下さい。では、前回作成したマクロの中身をみてみましょう。SubMacro1()''Macro1Macro' 'ActiveCell.FormulaR1C1= "マクロの記録で覚えるVBA"ActiveCell.Characters(5,
第3回.複数セルに文字を入れる
前回作成したマクロです。さて、おそらく誰でも思う事は、1行で書けないのかってことだと思います。書けます!Range("A3").Selectは、セルA3を選択し、アクティブにしています。そして、ActiveCell.… つまり、ここでのアクティブセルとは、A3になる訳です。
第4回.連続数値を入れる
さて、前回までで、セルに文字をいれることが出来ました。今回は、セルに連番を入れて見ましょう。行番号として、1、2、3、4…のように入れてみます。まず、準備として、以下をやって下さい。1.エクセルを起動する 2.VBE(VisualBasicEditor)を起動する 3.「ツール」→「オプション」「変数の宣言を強制する」にチェックする 4.「OK」以上で準…
第5回.100マスに数値を入れる
第6回.別のシートにコピーする
前回作成した100マスを別のシートにコピーしてみましょう。ここでは、「Sheet1」に100マスがあり、それを「Sheet2」へコピーします。いまは、「Sheet1」が開いていて、セルA1がアクティブになっています。
第7回.別のシートにコピーする2
前回は、値の貼り付けを「マクロの記録」で行い、そのマクロを修正しました。以下になります。今回は、同じ事を「.COPY」を使わずにやってみましょう。そもそも、これは何をしているかと言うと、「.COPY」で、セルをクリップボードに入れ、クリップボードの値のみセルに入れています。
第8回.計算式を入れる
前回までは、セルに文字を入れました。エクセルは表計算ソフトですから、計算式を入れたいですよね。今回からは、計算式を入れる方法、その値をコピーする方法等の説明になります。では、以下のようなシートを作成して下さい。
第9回.計算式をコピーする
前回作成した100マス計算を、別シートにコピーしてみましょう。第6回、第7回の内容とほぼ同様になります。エクセルVBAでは、このシート間のデータコピーが最もよく行われる事の1つであり、VBAの基本でもあります。
第10回.計算結果を入れる
前回作成した100マス計算の回答部分を、マクロで計算して入れてみましょう。従って、マクロの記録は使いません。タイトルと違うね(笑)、でもね、マクロの記録では出来ない事が多いのです。だから、VBAを覚える必要があるのです。
第11回.イミディエイトで値の確認
前回、FormulaR1C1とValueの違いを説明しましたが、それを確認するための方法を紹介します。これはデバックで使用するツールになります。デバッグとは、プログラムの誤り(バグと呼ばれる)を探し、取り除くこと。
第12回.セルに色を塗る
今回はちょっと難しいことをします。100マス計算に手入力で回答を入れて、その結果の成否を判定してみましょう。100マスの計算結果を一旦全て消して下さい。手入力で、回答を入れて下さい。掛け算九九は大丈夫ですか(笑) 全部入れなくて良いです。


新着記事NEW ・・・新着記事一覧を見る

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • 100マスに数値を入れる

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ