これ何て呼びますか

Excelで空白セル直前のセルデータ値を取得したいです。

   [A]  [B]  [C]  [D]  [E]  [F]  [G]  [H]
[1]   5  8  9

[A1]~[G1]と順番にデータをスキャンし、空白セルが見つ
かったらその直前のセルデータ値を取得し、その値を[H1]に表示す
るには、どのようにしたらいいでしょうか。
上記の場合は[D1]が空白セルなので、その前の[C1]の値 9 を
[H1]に表示したいです。
宜しくお願いします。

A 回答 (5件)

条件つきですが次の方法は如何でしょうか。


・入力データは全て数値、途中に空白セルはない
H1に=INDEX(A1:G1,COUNT(A1:G1))で下方向にコピーして下さい。
    • good
    • 4
この回答へのお礼

回答ありがとうございます。
もともと関数での処理を希望したのですが、質問を投稿する
カテゴリを間違ってしまったようです。
mu2011さんの回答で、すんなりできました。

お礼日時:2006/06/21 12:23

VBAの書き方は、常に、数通りあります。


その一例です。

Private Sub CommandButton1_Click()
  Dim I As Integer
  
  Cells(1, 8) = ""
  For I = 7 To 1 Step -1
    If Len(Cells(1, I) & "") > 0 Then
      Cells(1, 8) = Cells(1, I)
      Exit For
    End If
  Next I
End Sub

※Trim関数が必要か否かは質問者で判断して下さい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
昔少しだけプログラムを組んだことがあるので、
回答内容はわかりやすかったです。

お礼日時:2006/06/21 12:34

順を追ってプログラムしていけば難しくありません。


----
Sub mSPCheck()
Dim i As Long
'A1~G1まで繰り返し
For i = 1 To 7
'空白チェック
If Len(Trim$(Cells(1, i).Value)) = 0 Then
'空白ならループを抜ける
Exit For
End If
Next
'ループ条件が空白かどうかチェック
'i = 8はForループの条件で抜けた場合
If i < 8 Then
'空白なら値をH1に設定
Cells(1, 8).Value = Cells(1, i - 1).Value
End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
私のような初心者でも解りやすかったです。

お礼日時:2006/06/21 12:28

No2です。


すみません、VBA期待の所、関数で回答しました。
読み飛ばして下さい。
    • good
    • 1

Range("H1") = Range("A1").End(xlToRight).Value

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
とてもスマートな回答で感動しました。

お礼日時:2006/06/21 12:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報