Excel VBA質問箱 IV

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

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


9662 / 76734 ←次へ | 前へ→

【72632】Re:数値範囲のデータから数値がその範囲にあるか、もしくは含むかを調べる方法
発言  kanabun  - 12/8/29(水) 20:17 -

引用なし
パスワード
   ▼T.K さん:
>▼kanabun さん
>できる限り自分で調べてみました。
> 不明点が多くて申し訳ないですが、
> プログラムの意味をそれぞれ教えてください。よろしくお願いします。

本題はDictionaryだと思いますが、それ以外の 今夜すぐ理解できる疑問
についてだけ お答えします。

>Sub test3()
>  Dim dic As Object
>  Dim i As Long, n As Long
>  Dim r As Range
>  Dim v, ID
>  'dicに重複しないリスト作成する
>  Set dic = CreateObject("Scripting.Dictionary")
>  'Sheet1のデータ範囲
>  Set r = Worksheets("Sheet1").Cells(1).CurrentRegion
>  'vは見出しを除いた行数
>  v = Intersect(r, r.Offset(1)).Value
>  '見出しを除いた行数作業を繰り返すループ     
>  For i = 1 To UBound(v)
>  'dicにデータが無いのならclass列のデータを格納?
>    If Not dic.Exists(v(i, 1)) Then
>  '_は何? dic(v(i, 1)) = _の意味がいまいちわからない
● _ は 直前の半角スペースといっしょになって、単に改行している
   ところです。ですから       
>      Set dic(v(i, 1)) = _            
>        CreateObject("Scripting.Dictionary")
は 単に
    Set dic(v(i, 1)) = CreateObject("Scripting.Dictionary")
という一行を(一行にすると掲示板上で強制改行されて読みにくくなる
恐れがあるので) _を使って改行した、ということです。

>  '? 急にArrayが出てきたdicに格納した(v(i, 1))(v(i, 4))と
>  'Array(v(i, 2))(v(i, 3))を一致させるってこと? 
>    dic(v(i, 1))(v(i, 4)) = Array(v(i, 2), v(i, 3)) 
  ここは勘ちがいです。詳しいことは 明日にでも。

>  Next
>    
>  Dim a1, a2
>  Dim b1, b2
>  Dim vv
>  'Sheet2のデータ範囲
>  Set r = Worksheets("Sheet2").Cells(1).CurrentRegion
>  'withで何を省略しているのか分からない?Intersect? 
>  With Intersect(r, r.Offset(1))
  「Intersect(r, r.Offset(1))」は Sheet1 でやったから分かりますよね?
  いま
   a1 b1 c1 d1
   a2 b2 c2 d2
   a3 b3 c3 d3
   a4 b4 c4 d4
   a5 b5 c5 d5

という表があるとき、
>  Set r = Worksheets("Sheet2").Cells(1).CurrentRegion
  で変数r には [a1:d5] がセットされます。
 「Intersect(r, r.Offset(1))」は この範囲r と 範囲rを1行下にシフト
 した範囲 r.Offset(1) の重なる範囲(共通する範囲)を返します。
 [a1:d5]と この範囲を Offset(1) した [a2:d6]範囲の重なる範囲とは
 [a2:d5]です。つまり、元の表範囲から先頭行を除外したい範囲を指定
 したいときは このように書きます(他の書き方もありますが)。
 With はこのIntersectした範囲が Withされてます。

>   v = .Resize(, 3).Value             
>   vv = .Columns(4).Cells.Value          

   a2 b2 c2 d2
   a3 b3 c3 d3
   a4 b4 c4 d4
   a5 b5 c5 d5

この範囲を .Resize(, 3) と3列だけにリサイズすれば、

   a2 b2 c2
   a3 b3 c3
   a4 b4 c4
   a5 b5 c5

です。
またこの範囲の .Columns(4).Cells とは 4列目のすべてのセル
   a2 b2 c2 d2
   a3 b3 c3 d3
   a4 b4 c4 d4
   a5 b5 c5 d5

ということですから、[D2:D5] というセル範囲がそれです。

(とりあえず きょうはここまで)

3 hits

【72485】数値範囲のデータから数値がその範囲にあるか、もしくは含むかを調べる方法 T.K 12/8/15(水) 20:24 質問
【72486】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/15(水) 22:09 発言
【72489】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/15(水) 22:38 発言
【72491】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/15(水) 22:48 発言
【72492】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 0:37 発言
【72493】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 0:51 発言
【72494】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/16(木) 8:16 発言
【72495】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 9:03 発言
【72500】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/16(木) 12:54 発言
【72505】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/17(金) 21:25 発言
【72596】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/27(月) 21:46 質問
【72598】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/27(月) 23:55 発言
【72602】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/28(火) 9:51 質問
【72603】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 10:07 発言
【72605】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 10:12 発言
【72606】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/28(火) 10:38 発言
【72607】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 11:27 お礼
【72608】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 11:56 お礼
【72630】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:29 発言
【72631】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:43 発言
【72612】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 15:49 質問
【72613】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 18:37 質問
【72628】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 18:53 発言
【72629】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:12 発言
【72632】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 20:17 発言
【72634】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 21:35 発言
【72635】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 21:40 発言
【72657】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 15:49 発言
【72659】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/31(金) 16:25 発言
【72660】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 17:30 質問
【72664】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/31(金) 19:35 発言
【72666】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 19:45 お礼

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