「VBAでセルの場所を指定する方法がわからない。」
この記事では、こんな悩みを解決します。
私が全くのVBA初心者だったころは、
■セルのデータをコピー
■別のセルに張り付け
こんなことすらできませんでした。
この記事では、昔の自分のように
〇VBAについてなんにも知らない
〇VBAの勉強を始めたばかりだ
という人に向けて、VBAでの、セルの指定方法について解説していきます。
初心者によりそった解説をしていきますので、ぜひ最後までご覧ください。
それではさっそくやっていきます!
はじめに
VBAではセルを指定するは2つあります。
この記事では、それら2つの方法についてご紹介していきます。
ぜひ一緒にエクセルを動かして、理解を深めていきましょう。
とはいえ、まずはVBAが使えないことには何もできないので、VBAの始め方がわからない、という方は、以下の記事を参考にまずはVBAを使える状態にしてください。
前置きが長くなりましたが、本格的な説明に移っていきます。
セルを指定する2つの方法
ここからは、セルの指定方法をしっかりと理解してもらうために、指定したセルのデータをコピーして、他の指定したセルに張り付けるという作業を行っていきます。
具体的には、以下の画像のようにA1セルのデータをコピーし、B1セルに張り付けるということをやっていきます。
こんな簡単なことですが、この一連の流れの中で、しっかりとセルを指定する方法を学ぶことが出来ます。
それでは具体的な説明をしていきます。
cells(*,*)で指定する方法
まずはcells(*,*)というコードでセルを指定する方法についてです。
このcells(*,*)の*の部分はセルの行列数を表しています。
一つ目の * で行数(縦方向へのセルのカウント数)を表し、二つ目の * で列数(横方向へのセルのカウント数)を表しています。
具体的には、cells(1,1)はA1セル、cells(3,1)はA3セル、cells(2,3)はC2セルという具合になります。
これを実際に使って、先ほどの画像で紹介したように、A1セルのデータをB2セルにコピーするVBAをコードを書くと以下のようになります。
Sub region_select1()
Cells(1, 1).Copy
Cells(1, 2).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
①Cells(1,1) .Copy
でA1セルをコピーし
②Cells(1,2).Select
でB1セルを選択しています。
そして
③ActiveSheet.Paste
で張り付け作業を行っています。
※最後のApplication.CutCopyModeはコピーしている状態を解除するために書いているだけですので、初心者の方は深く考えなくて大丈夫です。
というわけで、cells(*,*)の使い方を簡単に理解いただけたのではないしょうか?
また、*の部分には変数を指定することも可能ですので、繰り替えし処理などを行う場合にはこのcells(*,*)の指定方法を使うほうが便利だと思います。
Range(“**”)で指定する方法
次はRange(“**”)という形でセルを指定する方法についてご紹介します。
個人的にはcellsで指定する方が使いやすいとは思っていますが、場合によってはここで紹介するRangeを使った方が良い場合があります。
例えば、BC列が左から何番目とかはすぐにわからないですよね?
要は、列数が膨大で、指定したいセルが何列目かわからない、というときにはRange(“**”)という方法で指定した方が便利です。
具体的にはA1セルを指定したい場合は直接的にRange(“A1”)という形で指定することが可能です。
具体的な使用方法を見てみましょう。
Sub region_select2()
Range("A1").Copy
Range("B1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
やっていることは先ほどと同じで、A1セルをコピーしてB1セルに張り付けているだけですので、詳細な説明は割愛します。
というわけで、Range(“**”)の使い方を理解いただけましたでしょうか?
※一見このRangeを使った方法の方が、簡単そうに見えるかもしれませんが、慣れるとcellsの方が使いやすいし便利だと思いますので、個人的にはcellsでの指定方法に慣れていくことをオススメします。
おわりに
というわけで、今回はVBA初心者向けに、2通りのセルを指定する方法についてご紹介しました。VBAの基本中の基本ですので、ぜひ使い方を覚えておきましょう。
このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。
■業務の効率を上げたい。
■早く帰って子供と遊びたい。
こんな人はぜひ他の記事も読んでみてください。
また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。
私にわかる範囲であればご協力いたしますので。(もちろん無料です。)
最後に・・・
このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
コメント