Excelマクロでラクラクお勉強

Excelマクロで楽して楽しく勉強してラクラク成績アップ

行番号と列番号を変数と定数で指定して読みとってみよう

2. 行番号と列番号を変数と定数で指定して読みとってみよう

きゅう先生

「セルの位置を示す行番号と列番号を変数と定数で指定して、そのセルの値を読みとってみましょう。

 セルの値を読みとったら、それをいったん変数に代入しましょう。次のような構文になります。」

f:id:qsuguru:20171130004419j:plain

きゅう先生

「変数に代入した値は、直接見ることができません。

そこで、変数の値をセルの値に代入しましょう。次のような構文になります。」

f:id:qsuguru:20171130004505j:plain

きゅう先生

「今回も、多数のセルの値を読みとることになるので、『3_くり返しセルに文字を書きこむ』のときにつくったマクロ『行番号と列番号をカウントアップするループ処理』をつかって、あらかじめ10行×10列のセルに文字を書きこんでおきましょう。」

f:id:qsuguru:20171130004716j:plain

f:id:qsuguru:20171130004736j:plain

(1) 1行, 1列

きゅう先生

「1行目・1列目のセルの値を読み取り、いったん変数『セルの値』に格納。

 その後、セルA12に変数『セルの値』を設定しましょう。

 このとき行番号を定数『行』、列番号を定数『列』としましょう。」

 

すぐるくん

「『セルの値』を文字列型で変数宣言。

 『Dim セルの値 As String』と記述します。

 

 『行』を値『1』として定数宣言。

 『Const 行 = 1』と記述します。

 

 『列』を値『1』として定数宣言。

 『Const 列 = 1』と記述します。

 

 変数『セルの値』に行番号『行』と列番号『列』のセルの値を格納するのだから、

 『セルの値 = Cells(行, 列).Value』と記述します。

 

 セルA12に変数『セルの値』を設定するのだから、

 『Range("A12").Value = セルの値』と記述します。」

f:id:qsuguru:20171130005020j:plain

きゅう先生

「よくできました。それでは、そのマクロを実行してみましょう。」

 

f:id:qsuguru:20171130005121j:plain

すぐるくん

「1行目・1列目のセルの値『1行1列』が読みとられて、セルA12に書きこまれました。」

 

(2) 1~3行, 1列

きゅう先生

「列を1列目に固定して、行を1行目から3行目まで1行ずつカウントアップしていきながら、そのつどセルの値を読みとり文字連結し変数『セルの値』に格納。

 その後、セルA12に変数『セルの値』を設定しましょう。」

 このとき行番号を変数『行』、列番号を定数『列』としましょう。」

 

すぐるくん

「『セルの値』を文字列型として変数宣言。

 『Dim セルの値 As String』と記述します。

 

 『行』を整数型として変数宣言。

 『Dim 行 As Integer』と記述します。

 

 『列』を値『1』として定数宣言。

 『Const 列 = 1』と記述します。

 

 1行目・1列目のセルの値を、変数『セルの値』に格納するのだから、

 『行 = 1

  セルの値 = Cells(行, 列).Value』と記述します。

 

 変数『セルの値』と2行目・1列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『行 = 2

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 変数『セルの値』と3行目・1列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『行 = 3

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 セルA12に変数『セルの値』を設定するのだから、

 『Range("A12").Value = セルの値』と記述します。」

f:id:qsuguru:20171130005537j:plain

きゅう先生

「よくできました。それでは、そのマクロを実行してみましょう。」

 

f:id:qsuguru:20171130005708j:plain

すぐるくん

「1~3行目・1列目のセルの値が読みとられて文字連結されて、セルA12に書きこまれました。

 でも、セルから文字がはみ出てて見えにくいな。」

きゅう先生

「そういうときは、セル結合をつかうと良いです。

 まず、セルA12からセルJ12までを選択してください。」

f:id:qsuguru:20171130005811j:plain

すぐるくん

「セルA12からセルJ12までを選択しました。」

きゅう先生

「次に、『Ctrl』キーと『1』キーを同時に打ってください。」

すぐるくん

「セルの書式設定という画面があらわれました。」

f:id:qsuguru:20171130005902j:plain

きゅう先生

「そして、『配置』タブを選んで『文字の制御』の中の『セルを結合する』をクリックしてチェックマークがついている状態にしてから『OK』ボタンをクリックしてください。」

f:id:qsuguru:20171130010027j:plain

すぐるくん

「セルA12からセルJ12までが結合されて見やすくなりました。」

きゅう先生

「このように、セルを結合すれば、文字がはみ出ず見やすい表をつくることができます。」

 

(3) 1行, 1~3列

きゅう先生

「行を1行目に固定して、列を1列目から3列目まで1列ずつカウントアップしていきながら、そのつどセルの値を読みとり文字連結し変数『セルの値』に格納。

 その後、セルA12に変数『セルの値』を設定しましょう。」

 このとき行番号を定数『行』、列番号を行数『列』としましょう。」

 

すぐるくん

「『セルの値』を文字列型として変数宣言。

 『Dim セルの値 As String』と記述します。

 

 『行』を値『1』として定数宣言。

 『Const 行 = 1』と記述します。

 

 『列』を整数型として変数宣言。

 『Dim 列 As Integer』と記述します。

 

 1行目・1列目のセルの値を、変数『セルの値』に格納するのだから、

 『列= 1

  セルの値 = Cells(行, 列).Value』と記述します。

 

 変数『セルの値』と1行目・2列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列= 2

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 変数『セルの値』と1行目・3列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列= 3

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 セルA12に変数『セルの値』を設定するのだから、

 『Range("A12").Value = セルの値』と記述します。」

f:id:qsuguru:20171130010640j:plain

きゅう先生

「よくできました。それでは、そのマクロを実行してみましょう。」

 

f:id:qsuguru:20171130010748j:plain

すぐるくん

「1行目・1~3列目のセルの値が読みとられて文字連結されて、セルA12に書きこまれました。」

 

(4) 1~3行, 1~3列

きゅう先生

「行を1行目から3行目まで1行ずつカウントアップしていきながら、列も1列目から3列目まで1列ずつカウントアップしていき、そのつどセルの値を読みとり文字連結し変数『セルの値』に格納。

 その後、セルA12に変数『セルの値』を設定しましょう

 このとき行番号を変数『行』、列番号を変数『列』としましょう。」

 

すぐるくん

「『セルの値』を文字列型として変数宣言。

 『Dim セルの値 As String』と記述します。

 

 『行』を整数型として変数宣言。

 『Dim 行 As Integer』と記述します。

 

 『列』を整数型として変数宣言。

 『Dim 列 As Integer』と記述します。

 

 行番号の変数『行』に1を設定します。

 『行= 1』と記述します。

 

 1行目・1列目のセルの値を、変数『セルの値』に格納するのだから、

 『列 = 1

  セルの値 = Cells(行, 列).Value』と記述します。

 変数『セルの値』と1行目・2列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 2

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 変数『セルの値』と1行目・3列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 3

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 行番号の変数『行』に2を設定します。

 『行= 2』と記述します。

 

 変数『セルの値』と2行目・1列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 1

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 変数『セルの値』と2行目・2列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 2

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 変数『セルの値』と2行目・3列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 3

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 行番号の変数『行』に3を設定します。

 『行= 3』と記述します。

 

 変数『セルの値』と3行目・1列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 1

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 変数『セルの値』と3行目・2列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 2

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 変数『セルの値』と3行目・3列目のセルの値を文字連結し、変数『セルの値』に格納するのだから、

 『列 = 3

  セルの値 = セルの値 & Cells(行, 列).Value』と記述します。

 

 セルA12に変数『セルの値』を設定するのだから、

 『Range("A12").Value = セルの値』と記述します。」

f:id:qsuguru:20171130011257j:plain

きゅう先生

「よくできました。それでは、そのマクロを実行してみましょう。」

 

f:id:qsuguru:20171130011334j:plain

すぐるくん

「1~3行目・1~3列目のセルの値が読みとられて文字連結されて、セルA12に書きこまれました。」

 

 

 

 

 

にほんブログ村 IT技術ブログへ
にほんブログ村