Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7587 / 76732 ←次へ | 前へ→

【74731】Re:セルの書き換え手法2点の違いを教えてください。
発言  kanabun  - 13/9/4(水) 10:47 -

引用なし
パスワード
   変数myV の型を Variant で行くか、Rangeで行くかでも
挙動が変わってきますね

--------------------------------------- ケース2
[変数myV はVariant]
Sub Variant_Case2()
 Dim myV As Variant
 Set myV = Range("B4:G4")
 myV = 123      '[B4:G4] 変化なし
End Sub

[変数myV はRange型]
Sub Range_Case2()
 Dim myV As Range
 Set myV = Range("B4:G4")
 myV = 123   '[B4:G4]が123に変わる!

End Sub
Range型にすると、
 Let myV.Value = 123
と解釈されてるようです。

--------------------------------------ケース1
[変数myV はVariant]
Sub Variant_Case1()
 Dim MyRange As Range
 Set MyRange = Range("B4:G4")
 MyRange.Value = Split("あ い う え お か") '初期化
 
 Dim myV As Variant
 Set myV = MyRange
 myV = 123    '[B4:G4] 変化なし
 MyRange = myV  '← ◆ どのセルにも 123 が代入される
End Sub
変数myV は、はじめ
> Set myV = MyRange
として Rangeオブジェクトをセットしていますが、
次のステートメント
> myV = 123
では それとは関係なく 値が代入されているようです。

[変数myV はRange型]
Sub Range_Case1()
 Range("B4:G4").Value = Split("あ い う え お か") '初期化
 
 Dim myV As Range
 Set myV = Range("B4:G4")
 myV = 123   'Range型にすると[B4:G4]が123に変わる!

End Sub

---------------------------------------------------sample1
Sub sample1()
 Dim MyRange As Range
 Set MyRange = Range("B4:G4")
 MyRange.Value = Split("あ い う え お か") '初期化
 
 Dim myV As Variant
 Set myV = MyRange
 myV.Value = 123   '[B4:G4]に123が代入される
 MyRange = myV    '◆MyRangeには Emptyが代入される
End Sub
このときは
> Set myV = MyRange
でmyVに Range型 がセットされ、なおかつ
> myV.Value = 123   '[B4:G4]に123が代入される
で 変数myV をセットしたRangeオブジェクトとして使っているので
値(123) が myV.Valueにセットされたのでしょうか?
それで
> MyRange = myV    '◆MyRangeには Emptyが代入される
の行で MyRange.Valueが空白になるのは、
「左辺は配列の値(Value)を要求しているのに右辺はRangeオブジェクトで
配列では無いため、無効なデータとしてEmptyが代入される仕様」
によるものでしょうか?
1 hits

【74718】セルの書き換え手法2点の違いを教えてください。 化け猫 13/9/3(火) 1:42 質問
【74719】Re:セルの書き換え手法2点の違いを教えてく... 化け猫 13/9/3(火) 5:20 発言
【74720】Re:セルの書き換え手法2点の違いを教えてく... ichinose 13/9/3(火) 6:18 発言
【74726】Re:セルの書き換え手法2点の違いを教えてく... 化け猫 13/9/4(水) 4:51 発言
【74727】Re:セルの書き換え手法2点の違いを教えてく... ichinose 13/9/4(水) 6:34 発言
【74728】Re:セルの書き換え手法2点の違いを教えてく... 13/9/4(水) 7:41 回答
【74731】Re:セルの書き換え手法2点の違いを教えてく... kanabun 13/9/4(水) 10:47 発言
【74733】Re:セルの書き換え手法2点の違いを教えてく... ichinose@食事中 13/9/4(水) 12:58 発言
【74747】Re:セルの書き換え手法2点の違いを教えてく... 化け猫 13/9/6(金) 23:32 発言
【74749】Re:セルの書き換え手法2点の違いを教えてく... ichinose@ 13/9/7(土) 7:51 発言
【74753】Re:セルの書き換え手法2点の違いを教えてく... 化け猫 13/9/7(土) 11:39 お礼
【74751】Re:セルの書き換え手法2点の違いを教えてく... kanabun 13/9/7(土) 8:45 発言

7587 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free