Excel VBA質問箱 IV

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

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


8535 / 76732 ←次へ | 前へ→

【73767】Re:表の比較
発言  UO3  - 13/2/11(月) 6:46 -

引用なし
パスワード
   ▼t−k さん:

おはようございます

>行列範囲の指定なのは理解できるのですが それぞれ-1、-2する理由が不明です

たとえばアップされて表の例でいいますと

A1 のCurrentRegion は A1:D4 ですね。(4行4列)
で、この中の いわゆる データが入っているリストの領域は C2:D4(3行2列) になりますね。

.Offset(1, 2)  == Offset(行方向の移動行数,列方向の移動列数)

これで、CurrentRegion領域を 1 つ下、2つ右に変化させます。
結果は C2:F5 になります。(4行4列)

.Resize(.Rows.Count - 1, .Columns.Count - 2) == Resize(変更後の行数,変更後の列数)

これで、上で変化させた領域 C2:F5 という 4行4列の領域に対して
行を、その行数4から 1を引いて 3行に、列を、その列数4から 2 を引いて 2列に変化させます。

ですから、結果は C2:D4 の 3行2列の領域になります。

>VBA.Arrayの部分とValueとAddresを行と列で言い方を変えてる部分が理解できません

まず、Array関数についてはヘルプも一読しておいてください。
Array(○○○,□□) は ○○○ と □□□ の 2つの要素を持った一次元配列を
生成します。通常、VBA. とつけずに使う例が多いと思いますが、これだと、できあがった配列の
LBoundが、もし、別途 Option Base 1 の記述が、このモジュールにあれば 1 になってしまいます。
コードの中では、最初の要素番号を 0 として処理しています。VBA. とつければ Option Base の記述の
有無にかかわらず、LBound が 0 で作られますので安心して処理できます。

で、VBA.Array(c.Value, c.Address(External:=True))

c.Value と c.Address(External:=True) の2つの値を配列の要素にしているわけです。
仮に c が アップされた例の C2 だったとします。
そうしますと、最初の要素 c.Value は 100 ですね。(セルの値)
で、c.Address(External:=True) は、そのセルのアドレスですが External:=True とすることで
単に "C2" ではなく、どのブックのどのシートのC2 だというアドレス文字列が格納されます。
ですから、あとからこのセルを Range(そのアドレス文字列) で参照することが可能です。

>日付の部分でVALUE2と表記してる部分も理解できていません

日付は、見た目 yyyy/mm/dd ですが、内容としては小数点付きのシリアル値というのは
ご存じでしょうか。
たとえば、今日 2013/2/11 は 41316 です。また現在の時刻は 41316.27901 あたりです。
Value2 には、日付セルの場合、このシリアル値を格納してくれます。
日付の検索は、けっこうやっかいなので、私はもっぱら、Value2 を使います。

521 hits

【73761】表の比較 t−k 13/2/10(日) 15:38 質問
【73762】Re:表の比較 UO3 13/2/10(日) 19:22 発言
【73763】Re:表の比較 UO3 13/2/10(日) 19:51 発言
【73766】Re:表の比較 t−k 13/2/10(日) 22:56 発言
【73767】Re:表の比較 UO3 13/2/11(月) 6:46 発言
【75126】Re:表の比較 T-k 13/12/14(土) 0:02 質問
【75127】Re:表の比較 γ 13/12/14(土) 6:36 発言
【75133】Re:表の比較 T-k 13/12/17(火) 0:55 発言
【75134】Re:表の比較 γ 13/12/17(火) 6:35 発言
【75135】Re:表の比較 T-k 13/12/18(水) 0:28 発言
【75138】Re:表の比較 γ 13/12/18(水) 23:17 発言
【75141】Re:表の比較 T-k 13/12/20(金) 0:36 発言
【75143】Re:表の比較 γ 13/12/20(金) 7:16 発言
【75147】Re:表の比較 T-k 13/12/20(金) 23:50 お礼
【73768】Re:表の比較 UO3 13/2/11(月) 14:08 発言
【73770】Re:表の比較 t−k 13/2/12(火) 23:38 お礼
【73780】Re:表の比較 UO3 13/2/13(水) 19:30 発言
【81386】Re:表の比較 T-K 20/7/13(月) 23:33 質問[未読]
【81388】Re:表の比較 γ 20/7/14(火) 5:43 発言[未読]
【81393】Re:表の比較 T-K 20/7/14(火) 19:54 発言[未読]
【81394】Re:表の比較 γ 20/7/15(水) 9:15 回答[未読]
【81395】Re:表の比較 T-K 20/7/15(水) 17:45 お礼[未読]
【81396】Re:表の比較 マナ 20/7/15(水) 21:02 発言[未読]
【81398】Re:表の比較 マナ 20/7/15(水) 21:40 発言[未読]
【81397】Re:表の比較 マナ 20/7/15(水) 21:04 発言[未読]
【81399】Re:表の比較 T-K 20/7/15(水) 23:57 発言[未読]
【81400】Re:表の比較 マナ 20/7/16(木) 21:05 発言[未読]
【81410】Re:表の比較 T-K 20/7/23(木) 23:51 発言[未読]
【81412】Re:表の比較 マナ 20/7/24(金) 11:03 発言[未読]
【81415】Re:表の比較 マナ 20/7/24(金) 11:51 発言[未読]
【81429】Re:表の比較 T-K 20/7/29(水) 23:31 発言[未読]
【81433】Re:表の比較 マナ 20/7/30(木) 19:30 発言[未読]
【81434】Re:表の比較 マナ 20/7/30(木) 20:20 発言[未読]
【81435】Re:表の比較 T–K 20/8/1(土) 12:29 お礼[未読]

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