アプリ版:「スタンプのみでお礼する」機能のリリースについて

このサイトで、セル範囲を表記するのに [B10:C11] のような書き方をはじめて見ました。
以下のように試してみました。

Sub test01()
Range("B10:C11").Select
End Sub

Sub test02()
[B10:C11].Select
End Sub

まったく同じように働きます。
これは、Range("B10:C11") と、[B10:C11] は同じ意味だということでしょうか?
同じなら、この方が文字数も少なく書きやすいと思うのですが、あまり見かけないのはなぜでしょうか?

また、変数を使おうと

Sub test03()
X = 11
Range("B10:C" & X).Select
End Sub

を次のように書き換えましたところ、「オブジェクトが必要です」という実行時エラーになってしまいました。

Sub test04()
X = 11
[B10:C & x].Select
End Sub

この書き方は変数は組み合わせられないのでしょうか?

A 回答 (2件)

セル範囲をショートカットで表現する方法です。


括弧内はA1形式のみです、R1C1形式、変数や定数も使用できません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
変数は使えないんですね、わかりました。

お礼日時:2011/04/21 14:43

ドキュメントとしては[Evaluate メソッド]のヘルプを参考にしてみてください。


http://msdn.microsoft.com/ja-jp/library/aa191489 …

あまり見かける事がないのは、認知度が高くない、のと
ご質問の事例のように、変数が使えない、事も一因ではないでしょうか。
簡便な書き方なので個人的に使う分には構わないと思います。

回答コードではサンプルデータを作る時など
Range("A1:C2").Value = [{"F1","F2","F3";1,2,3}]
..な感じのをたまに見かけます。
#というか、たまに書いてしまってます。

速度的にも大差ないようですが、上記理由の為、主流にはならないような気がします。
http://officetanaka.net/excel/vba/speed/s10.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはり認知度は低いのですね。

Range("A1:C2").Value = [{"F1","F2","F3";1,2,3}]
配列をこうかけるんですね、勉強にになります。

[A1:C2] = [{"F1","F2","F3";1,2,3}] でもいいわけですね。
でも、こうするともうわかがわからなくなりそう・・・。

ありがとうございました。

お礼日時:2011/04/21 14:57

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


このQ&Aを見た人がよく見るQ&A