ここから本文です

追加で質問を起こします。VBAの Rng.Value = Rng.Value の意味を知りたいのです...

pro********さん

2010/1/515:50:57

追加で質問を起こします。VBAの Rng.Value = Rng.Value

の意味を知りたいのですが、下記コード全容から、どういうイメージをすればよろしいでしょうか。
コード全容は、空欄を埋めるVBAです。

コメントアウトは、自分の理解です。
間違っているかもしれません。

Sub ボタン2_Click()
Dim Rng As Range
'Range型の変数Rngを宣言

'Set 変数に参照を行うためのSetステートメント
Set Rng = Range("B8", Cells(Rows.Count, 2).End(xlUp)).Offset(, -1)
'(Rows.Count, 2)は、最終行を取得し、数字の2は、B列の列数である、2列を表す。
'End(xlUp)は、B行から空欄でないセルまで進む。
''空欄でないセルを見つけたのち、Offset(, -1)で、1列左のセルである、A列へ移動

On Error Resume Next
Rng.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
'SpecialCellsとは、特定の種類のセルを取得するメソッド。
'(xlCellTypeBlanks)は、空欄のセルの意味。
'空欄のセルが終わる位置まで-1づつ上の行に進んでいく? ※ちょっと自信がないです。
’空欄でないセル位置まで来たら、On Error GoTo 0へ進む。

On Error GoTo 0
’下記の矢印がいまいち、ピンと来ないのですが、
’ ↓
Rng.Value = Rng.Value
' ↑
’空欄を埋めるための処理は、たぶんここの個所で
’行われていると思うのですが、イメージがうまくつかめません。
’コピーのコード無しにして、どうやって空欄を埋めているのか、よくわからないのです。
’ご教授お願いできますでしょうか。


End Sub

閲覧数:
3,272
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

ads********さん

編集あり2010/1/516:34:33

>Rng.SpecialCells(xlCellTypeBlanks)
変数:Rngのセル範囲の内、空白のセルだけを取得する。

>.FormulaR1C1 = "=R[-1]C"
その範囲に対して数式を入れる。

>Rng.Value = Rng.Value
数式を値にする。

--------------------------------

Rng.SpecialCells(xlCellTypeBlanks).Select

Stop

Selection.FormulaR1C1 = "=R[-1]C"

どこがSelectされているかを確認してみるのも手かも。

質問した人からのコメント

2010/1/5 17:08:04

感謝 STOP処理で確認すると、空白セルだけをポイントしてました。
迅速なフォローありがとうございました。100%の理解までとはいけませんが、
十分解読できました。引き続き勉強しておきます。
ありがとうございました。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる