Excel(エクセル)の操作が楽になる方法と便利な使い方を紹介しています。


menu

Excel(エクセル)が楽で便利になる方法 [あまおとろぐ]

セルの値を取得したい!設定もしたい!Excelマクロ(VBA)のCells関数のValueプロパティ

  • このエントリーをはてなブックマークに追加
[ この記事の内容は Excel2013 でも使えます ]
 
セルの値を取得したり、設定したりする時には Cells関数のValueプロパティ を使います。
 
マクロ(VBA)にはたくさんの関数がありますが、
とりあえず、このCellsを覚えておけばなんとかなりますよ。
 
 

スポンサーリンク

Cells関数のValueプロパティの使い方

 
[書式]
Cells( 行の番号, 列の番号 ).Value
 
行の番号は、行番号がそのまま入ります。
先頭行であれば1、6行目であれば6ですね。
351-1.png
 
 
列の番号は、A列の場合は1、B列の場合は2といった番号が入ります。
351-2.png
 
 
 
例えば、「Aさん」という文字はA2セル(2行目の1列目)にありますので、
Cells( 2, 1 ).Value
とすると、「Aさん」という文字を取得できます。
 
 351-3.png
 
 

スポンサーリンク

Cells関数を使ったサンプルプログラム

以下のような表があります。
 
名前毎に1~3回目の列に数字が入っていますね。
 
351-4.png
 
数字が入っている場合、該当する回数を一番右列にくっつけて表示してみます。
 
 
このプログラムを実行します。
実行方法はこの記事を参考にしてくださいね。
 
 
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文で「セルが空じゃない場合に文字を表示する」ことを書いています。
 
 
文字と文字をくっつけるには、+(プラス)ではなく、&(アンパサンド)を使ってます。
 
+を使った場合、結合する文字が「数字」だった場合、足し算してしまうことがあります。
&を使うと必ず文字として結合してくれますので、間違いがないですよ。
 
 
実行結果です。
 
351-5.png
 
結果列に表示されました!
 
 

まとめ

いかがでしたでしょうか?
 
Cells関数のValueは、セル値の取得と設定が両方できるので便利ですね。
 
数式を使っても同じことができますが、「数字が入っている場合」といった条件が必要な場合、
マクロ(VBA)の方が簡単に実現できますよ。
 
一度、お試しくださいね。
 
スポンサーリンク

  • このエントリーをはてなブックマークに追加

関連記事

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

だーしゅ
IT関係のお仕事してます。
Excel大好き。

[当ブログについて]

最近のコメント

  • だーしゅ { YUUKO26さん、コメントありがとうございます。 求めていた計算式があって良かったです。 >こちらの式でいう【田】の部分の項目が2つ存在する場合 ですが、COUNTIFS関数を使うと良いです。 COUNTIF関数に「S」が付いただけですが、 複数の項目を扱うことができます。 例えば、 =COUNTIFS(A4,"*田*", A4,"*子*")>0 とすると、「田」と「子」がある場合、TRUEになります。 これを使って、該当がなければ空欄、であれば、 = IF( COUNTIFS(A4,"*田*", A4,"*子*")>0, "○","" ) という感じですね。 式が分かりにくくなった時は、 一度、分解してみると良いですね。 } – 11月 14, 2:00 PM
  • YUUKO26 { 初めまして。まさに求めていた計算式でしたので、感動のあまりコメントさせていただきました! 本当にありがとうございます^^ ちなみに、こちらの式ですが、 こちらの式でいう【田】の部分の項目が2つ存在する場合、どのような式にすればよろしいでしょうか? 詳しく例を申し上げますと、ある列に田と子がある場合は○と示し、該当がなければ空欄としたい。。というかんじです。もしお教えいただけるようであればよろしくお願いします>< } – 11月 14, 8:57 AM
  • だーしゅ { 匿名さん、コメントありがとうございます。 解消されたようで良かったです。 } – 9月 12, 3:45 PM
  • { 長年の疑問が解消しました。ありがとうございます。 } – 9月 05, 5:00 AM
  • だーしゅ { ギイチローさん、コメントありがとうございます。 お役に立てたようで良かったです。 Excelは便利ですね。 } – 5月 24, 3:41 PM
  • ギイチロー { 記述の粒度適切、全長短くてちょうどいい、記述スタイル簡明。しばしば参照して、イロイロと大変に助かっています。ありがとうございます。このエントリ内容にはハゲしく感動しましたので、使わせてもらいっぱなしは申し訳ないなあ悪いなあという思いが湧き上がってまいりました。この機会に御礼申し上げます。 } – 5月 24, 7:31 AM