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回.セルに文字を入れる

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


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

Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(6月23日)
Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)


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

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



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

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


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




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