【RangeとCellsでセルの位置を指定する】

 1 新しいマクロをつくる

 2 マクロをコピーして書きかえる

 3 Rangeのセル番地を直接指定

 4 Rangeのセル番地を定数で指定

 5 Rangeのセル番地を変数で指定

 6 Cellsの行番号と列番号を直接指定

 7 Cellsの行番号と列番号を定数で指定

マクロをコピーして書きかえる

パイさん

プログラミングでは、既に作成したプログラムをコピーして書きかえるというように、

 プログラムの再利用がよく行われます。

 

 『ビジュアル ベーシック エディター』をつかえば、新しいマクロをつくりだすことができますが、

 既に作成したマクロをコピーして書きかえることもできます。マクロをコピーして書きかえてみましょう。

 

 まず、『ビジュアル ベーシック エディター』を開きましょう。」

Img2_2_1

パイさん

「先ほど、つくったマクロがあります。これをコピーします。

 『Sub』の左にカーソルをもってきて、Shiftキーを押しながらキーを3回押してみてください。」

Img2_2_2

ソンくん

「マクロが全て、青の背景色になり白い文字になりました。」

パイさん

「これは、全てのコードが選択されている状態です。

 次に、Ctrlキーを押しながらCキーを押してみてください。」

ソンくん

「なにも起こりません。」

パイさん

「なにも起こってないように見えますが、CtrlキーとCキーを同時に押すと、

 選択されている情報がパソコンの一時的な保存領域にコピーされている状態になります。

 キーを1回押して、Enterキーを1回押してカーソルを2行下に移動させてください。」

Img2_2_3

ソンくん

「カーソルが2行下に移動しました。」

パイさん

「次に、Ctrlキーを押しながらVキーを押してみてください。」

Img2_2_4

ソンくん

「全く同じマクロが現れました!」

パイさん

CtrlキーとVキーを同時に押すと、パソコンの一時的な保存領域にコピーされている情報が

 カーソルのある場所にはりつけられることになります。

 CtrlキーとCキーを同時に押して情報をコピーし、CtrlキーとVキーを同時に押して情報をはりつける。

 パソコンを操作するときによくつかう技なので覚えておくと便利です。

 では、マクロ名を『セルA1に書きこむ』に書きかえましょう。」

Img2_2_5

ソンくん

「マクロ名を『セルA1に書きこむ』に書きかえました。」

パイさん

「マクロ名の『セルA1に書きこむ』の『A1』をコピーして、2行目の右辺の文字列にはりつけてみましょう。」

Img2_2_6

ソンくん

「マクロ名の『A1』のすぐ左にカーソルをもってきて、Shiftキーを押しながらキーを2回押して、

 『A1』を選択状態にして、CtrlキーとCキーを同時に押します。」

Img2_2_7

ソンくん

「2行目の右辺の『”』と『”』の間の文字列を選択して、CtrlキーとVキーを同時に押しました。」

Img2_2_8

ソンくん

「2行目の右辺の文字列に、『A1』が、はりつきました。」

パイさん

「次に、2行目の右辺の文字列を『値A1』に書きかえましょう。」

Img2_2_9

ソンくん

「2行目の右辺の文字列を『値A1』に書きかえました。」

パイさん

「それでは、マクロ『セルA1に書きこむ』を実行してみましょう。」

Img2_2_10

ソンくん

セルA1に、『値A1』が、書きこまれました。」


パイさん

「それでは、マクロ『セルA1に書きこむ』をコピーして、マクロ『セルB2に書きこむ』をつくってみましょう。

 マクロ『セルB2に書きこむ』では、セルB2に、『値B2』という文字列を代入してみましょう。」

ソンくん

「マクロ『セルA1に書きこむ』をコピーして、3ケ所の『A1』を全て『B2』に書きかえました。」

Img2_2_11

パイさん

「それでは、マクロ『セルB2に書きこむ』を実行してみましょう。」

Img2_2_12

ソンくん

セルB2に、『値B2』が、書きこまれました。」


パイさん

「それでは、マクロ『セルB2に書きこむ』をコピーして、マクロ『セルC3に書きこむ』をつくってみましょう。

 マクロ『セルC3に書きこむ』では、セルC3に、『値C3』という文字列を代入してみましょう。」

 ここで、ある文字を全て同じ他の文字にいっぺんに変換する技を伝授します。

 マクロ『セルB2に書きこむ』をコピーして、一番下の行にはりつけてください。」

Img2_2_13

ソンくん

「マクロ『セルB2に書きこむ』をコピーして、その2行下にはりつけました。」

パイさん

「コピーしたマクロ『セルB2に書きこむ』を全て選択している状態にしてください。」

Img2_2_14

ソンくん

「コピーしたマクロ『セルB2に書きこむ』を全て選択している状態にしました。」

パイさん

「ここで、CtrlキーとHキーを同時に押してください。」

Img2_2_15

ソンくん

「『置換』というタイトルの画面が現れました。」

パイさん

「『検索する文字列』を『B2』、『置換後の文字列』を『C3』としてください。」

Img2_2_16

ソンくん

「『検索する文字列』を『B2』、『置換後の文字列』を『C3』としました。」

パイさん

すべて置換をクリックしてください。」

Img2_2_17

ソンくん

「『検索が終了しました。3個の項目を置換しました。』というメッセージが表示されました。」

パイさん

OKをクリックしてください。

 そして『置換』というタイトルの画面を右上の×ボタンを押して閉じてください。」

Img2_2_18

ソンくん

「選択していた文字列の『B2』が全て『C3』に置き換わりました。」

Img2_2_19

パイさん

「マクロ『セルC3に書きこむ』を実行してみましょう。」

Img2_2_20

ソンくん

セルC3に、『値C3』が、書きこまれました。」


パイさん

「今回は、『ビジュアル ベーシック エディター』をつかえば、既に作成したマクロをコピーして書きかえることができる

 という話でした。

 

 既に作成したプログラムをコピーして書きかえることによりプログラミング時間を短縮し、

 プログラミングミスを削減することができるようになります。

 

 また、前回と今回、Range(セル番地).Value = の構文をつかってセル番地のセルを代入する

 コードを記述してきました。

 試しに、セル番地を適当な値に書きかえて、マクロを実行して、指定したセルに文字が書きこまれることを確かめて

 みましょう。

 (1) セルA2に『値A2』を、

 (2) セルB1に『値B1』を、

 (3) セルC2に『値C2』を、

 (4) セルB3に『値B3』を、

 代入してみましょう。

演習(1):マクロ『セルA2に書きこむ』

セルA2の値に、『値A2』という文字列を代入

Sub セルA2に書きこむ()

 Range(“A2”).Value = "値A2"

End Sub

 

演習(2):マクロ『セルB1に書きこむ』

セルB1の値に、『値B1』という文字列を代入

Sub セルB1に書きこむ()

 Range(“B1”).Value = "値B1"

End Sub

 

演習(3):マクロ『セルC2に書きこむ』

セルC2の値に、『値C2』という文字列を代入

Sub セルC2に書きこむ()

 Range(“C2”).Value = "値C2"

End Sub

 

演習(4):マクロ『セルB3に書きこむ』

セルB3に、『値B3』という文字列を代入

Sub セルB3に書きこむ()

 Range(“B3”).Value = "値B3"

End Sub

 

 実は、Rangeセル番地については三つの指定方法があります。

 その一つ目が、Rangeセル番地直接指定するという方法です。

 これについては、次回『Rangeのセル番地を直接指定』で紹介します。」