【RangeとCellsでセルの位置を指定する】
1 新しいマクロをつくる
2 マクロをコピーして書きかえる
3 Rangeのセル番地を直接指定
4 Rangeのセル番地を定数で指定
5 Rangeのセル番地を変数で指定
6 Cellsの行番号と列番号を直接指定
7 Cellsの行番号と列番号を定数で指定
マクロをコピーして書きかえる
パイさん
「プログラミングでは、既に作成したプログラムをコピーして書きかえるというように、
プログラムの再利用がよく行われます。
『ビジュアル ベーシック エディター』をつかえば、新しいマクロをつくりだすことができますが、
既に作成したマクロをコピーして書きかえることもできます。マクロをコピーして書きかえてみましょう。
まず、『ビジュアル ベーシック エディター』を開きましょう。」
パイさん
「先ほど、つくったマクロがあります。これをコピーします。
『Sub』の左にカーソルをもってきて、Shiftキーを押しながら↓キーを3回押してみてください。」
ソンくん
「マクロが全て、青の背景色になり白い文字になりました。」
パイさん
「これは、全てのコードが選択されている状態です。
次に、Ctrlキーを押しながらCキーを押してみてください。」
ソンくん
「なにも起こりません。」
パイさん
「なにも起こってないように見えますが、CtrlキーとCキーを同時に押すと、
選択されている情報がパソコンの一時的な保存領域にコピーされている状態になります。
↓キーを1回押して、Enterキーを1回押してカーソルを2行下に移動させてください。」
ソンくん
「カーソルが2行下に移動しました。」
パイさん
「次に、Ctrlキーを押しながらVキーを押してみてください。」
ソンくん
「全く同じマクロが現れました!」
パイさん
「CtrlキーとVキーを同時に押すと、パソコンの一時的な保存領域にコピーされている情報が
カーソルのある場所にはりつけられることになります。
CtrlキーとCキーを同時に押して情報をコピーし、CtrlキーとVキーを同時に押して情報をはりつける。
パソコンを操作するときによくつかう技なので覚えておくと便利です。
では、マクロ名を『セルA1に書きこむ』に書きかえましょう。」
ソンくん
「マクロ名を『セルA1に書きこむ』に書きかえました。」
パイさん
「マクロ名の『セルA1に書きこむ』の『A1』をコピーして、2行目の右辺の文字列にはりつけてみましょう。」
ソンくん
「マクロ名の『A1』のすぐ左にカーソルをもってきて、Shiftキーを押しながら→キーを2回押して、
『A1』を選択状態にして、CtrlキーとCキーを同時に押します。」
ソンくん
「2行目の右辺の『”』と『”』の間の文字列を選択して、CtrlキーとVキーを同時に押しました。」
ソンくん
「2行目の右辺の文字列に、『A1』が、はりつきました。」
パイさん
「次に、2行目の右辺の文字列を『値A1』に書きかえましょう。」
ソンくん
「2行目の右辺の文字列を『値A1』に書きかえました。」
パイさん
「それでは、マクロ『セルA1に書きこむ』を実行してみましょう。」
ソンくん
「セルA1に、『値A1』が、書きこまれました。」
パイさん
「それでは、マクロ『セルA1に書きこむ』をコピーして、マクロ『セルB2に書きこむ』をつくってみましょう。
マクロ『セルB2に書きこむ』では、セルB2に、『値B2』という文字列を代入してみましょう。」
ソンくん
「マクロ『セルA1に書きこむ』をコピーして、3ケ所の『A1』を全て『B2』に書きかえました。」
パイさん
「それでは、マクロ『セルB2に書きこむ』を実行してみましょう。」
ソンくん
「セルB2に、『値B2』が、書きこまれました。」
パイさん
「それでは、マクロ『セルB2に書きこむ』をコピーして、マクロ『セルC3に書きこむ』をつくってみましょう。
マクロ『セルC3に書きこむ』では、セルC3に、『値C3』という文字列を代入してみましょう。」
ここで、ある文字を全て同じ他の文字にいっぺんに変換する技を伝授します。
マクロ『セルB2に書きこむ』をコピーして、一番下の行にはりつけてください。」
ソンくん
「マクロ『セルB2に書きこむ』をコピーして、その2行下にはりつけました。」
パイさん
「コピーしたマクロ『セルB2に書きこむ』を全て選択している状態にしてください。」
ソンくん
「コピーしたマクロ『セルB2に書きこむ』を全て選択している状態にしました。」
パイさん
「ここで、CtrlキーとHキーを同時に押してください。」
ソンくん
「『置換』というタイトルの画面が現れました。」
パイさん
「『検索する文字列』を『B2』、『置換後の文字列』を『C3』としてください。」
ソンくん
「『検索する文字列』を『B2』、『置換後の文字列』を『C3』としました。」
パイさん
「すべて置換をクリックしてください。」
ソンくん
「『検索が終了しました。3個の項目を置換しました。』というメッセージが表示されました。」
パイさん
「OKをクリックしてください。
そして『置換』というタイトルの画面を右上の×ボタンを押して閉じてください。」
ソンくん
「選択していた文字列の『B2』が全て『C3』に置き換わりました。」
パイさん
「マクロ『セルC3に書きこむ』を実行してみましょう。」
ソンくん
「セル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のセル番地を直接指定』で紹介します。」