ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】セルの場所指定方法を基本から徹底解説!初心者向け!

f:id:yshgs_elec:20200923213928j:plain

「VBAでセルの場所を指定する方法がわからない。」

 

この記事では、こんな悩みを解決します。

 

私が全くのVBA初心者だったころは、

■セルのデータをコピー

■別のセルに張り付け

こんなことすらできませんでした。

 

この記事では、昔の自分のように

〇VBAについてなんにも知らない

〇VBAの勉強を始めたばかりだ

という人に向けて、VBAでの、セルの指定方法について解説していきます。

 

初心者によりそった解説をしていきますので、ぜひ最後までご覧ください。

 

それではさっそくやっていきます!

 

 

はじめに

VBAではセルを指定するは2つあります。

この記事では、それら2つの方法についてご紹介していきます。

 

 

ぜひ一緒にエクセルを動かして、理解を深めていきましょう。

 

とはいえ、まずはVBAが使えないことには何もできないので、VBAの始め方がわからない、という方は、以下の記事を参考にまずはVBAを使える状態にしてください。

 

www.higashisalary.com

 

 前置きが長くなりましたが、本格的な説明に移っていきます。

 

セルを指定する2つの方法

ここからは、セルの指定方法をしっかりと理解してもらうために、指定したセルのデータをコピーして、他の指定したセルに張り付けるという作業を行っていきます。

 

具体的には、以下の画像のようにA1セルのデータをコピーし、B1セルに張り付けるということをやっていきます。

こんな簡単なことですが、この一連の流れの中で、しっかりとセルを指定する方法を学ぶことが出来ます。

f:id:yshgs_elec:20200923204538j:plain

 

それでは具体的な説明をしていきます。

 

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を使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

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

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

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!