セルの値を取得したい!設定もしたい!Excelマクロ(VBA)のCells関数のValueプロパティ
[ この記事の内容は Office 2019/2021、Microsoft 365 でも使えます ]
セルの値を取得したり、設定したりする時には Cells関数のValueプロパティ を使います。
マクロ(VBA)にはたくさんの関数がありますが、とりあえず、このCellsを覚えておけばなんとかなりますよ。
Cells関数のValueプロパティの使い方
[書式]
Cells( 行の番号, 列の番号 ).Value
行の番号は、行番号がそのまま入ります。
先頭行であれば1、6行目であれば6ですね。
列の番号は、A列の場合は1、B列の場合は2といった番号が入ります。
例えば、「Aさん」という文字はA2セル(2行目の1列目)にありますので、
Cells( 2, 1 ).Value
とすると、「Aさん」という文字を取得できます。
Cells関数を使ったサンプルプログラム
以下のような表があります。
名前毎に1~3回目の列に数字が入っていますね。
数字が入っている場合、該当する回数を一番右列にくっつけて表示してみます。
このプログラムを実行します。
Function test1() '変数を定義する Dim gyou As Integer '行の数 Dim hyouji As String '表示文字 '表示文字を空にする hyouji = "" '4~6行目の値をチェックする For gyou = 4 To 6 'B列(2)の値が空じゃなかったらタイトル文字を表示 If Cells(gyou, 2).Value <> "" Then hyouji = hyouji & "・" & Cells(3, 2).Value & vbCrLf End If 'C列(3)の値が空じゃなかったらタイトル文字を表示 If Cells(gyou, 3).Value <> "" Then hyouji = hyouji & "・" & Cells(3, 3).Value & vbCrLf End If 'D列(4)の値が空じゃなかったらタイトル文字を表示 If Cells(gyou, 4).Value <> "" Then hyouji = hyouji & "・" & Cells(3, 4).Value & vbCrLf End If '作った文字をE列(5)に表示 Cells(gyou, 5).Value = hyouji '次の行で使うために表示文字の中身を空にしておく hyouji = "" Next End Function
簡単に説明しておきます。
このプログラムでは、For ~ To とNextで囲まれた部分が3回実行され、If文で「セルが空じゃない場合に文字を表示する」ことを書いています。
文字と文字をくっつけるには、+(プラス)ではなく、&(アンパサンド)を使ってます。
+を使った場合、結合する文字が「数字」だった場合、足し算してしまうことがあります。
&を使うと必ず文字として結合してくれますので、間違いがないですよ。
実行結果です。
結果列に表示されました!
まとめ
いかがでしたでしょうか?
Cells関数のValueは、セル値の取得と設定が両方できるので便利ですね。
数式を使っても同じことができますが、「数字が入っている場合」といった条件が必要な場合、マクロ(VBA)の方が簡単に実現できますよ。
一度、お試しくださいね。
コメント
トラックバックは利用できません。
コメント (0)
この記事へのコメントはありません。