Excel VBA質問箱 IV

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

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


4471 / 13645 ツリー ←次へ | 前へ→

【56407】条件分岐について かずお 08/6/16(月) 16:17 質問[未読]
【56414】Re:条件分岐について kanabun 08/6/16(月) 20:34 発言[未読]
【56429】Re:条件分岐について かずお 08/6/17(火) 10:32 お礼[未読]
【56427】Re:条件分岐について ひげくま 08/6/17(火) 9:53 発言[未読]
【56433】Re:条件分岐について かずお 08/6/17(火) 11:56 お礼[未読]

【56407】条件分岐について
質問  かずお  - 08/6/16(月) 16:17 -

引用なし
パスワード
   文字の切り離しと並べ替えをして二つの表を整理しましたが、表1の値を表2へ入れたいのですがどの様にしたら良いのか解かりませんので、どなたか宜しくご教授をお願いします。

表1             表2

1 番号  値       1 順位  番号  値
2  1    …       2   A    0    …
3  2    …       3   B    1    …
                4   C    1
                5   D    1
                6   B    2    …
                7   C    2
                8   D    2

表1の番号1の値を表2の番号が1で順位がCとDのときに表2の値列に入れ同じように番号2の値を表2のCとDへと入れたいのですが、また番号は1から始まるとは限りませんが1,2,3という風に順に並んでいます。

どうか宜しくお願いします。
 

【56414】Re:条件分岐について
発言  kanabun  - 08/6/16(月) 20:34 -

引用なし
パスワード
   ▼かずお さん:

簡単のため、「表1」が Sheet1の[A1]セルから、
また「表2」が Sheet2 の[A1]セルから始まっていると仮定します。

> 表1の番号1の値を表2の番号が1で順位がCとDのときに表2の値列に入れ
というようなことを 表2に対して 表1の番号でオートフィルタかけて処理してみます。

Sub Try1()
 Dim 表1, r As Range, c As Range
 Dim i As Long
 
 With Sheets(1)
   表1 = .Range("A2", .Range("A1").End(xlDown)).Resize(, 2).Value
 End With
 
 Set r = Sheets(2).Range("A1").CurrentRegion
 Set c = Intersect(r.Columns(3), r.Columns(3).Offset(1))
 r.AutoFilter
 For i = 1 To UBound(表1)
   r.AutoFilter 1, "C", xlOr, "D"
   r.AutoFilter 2, 表1(i, 1)
   If c.SpecialCells(xlVisible).Count > 0 Then
     c.Value = 表1(i, 2)  '--- 可視セルに 表1の値を書き込む
   End If
 Next
 r.AutoFilter

End Sub

【56427】Re:条件分岐について
発言  ひげくま  - 08/6/17(火) 9:53 -

引用なし
パスワード
   表1の値を表2に取り込むのはVLOOKUP関数でできます。
CとDのときだけ、というのはIF関数でできます。

VBAを使わなくても、ワークシート関数で実現できることは、ワークシート関数で処理しましょう。

あと、文章はもっと解りやすく書くことを心がけましょう。

【56429】Re:条件分岐について
お礼  かずお  - 08/6/17(火) 10:32 -

引用なし
パスワード
   kanabunさん ありがとうございます。
 
 返事が遅くなりすみませんでした。マクロの実行でサクッと小気味よく出来て、
思わずアレ〜! kanabunさんって宇宙人・・・?
 いまコードをじっくり眺めているところで、まだ良くは理解できていませんが、
変数の使い方 大変勉強になります。列数を増やしたりして理解を深めようと思っています。

 貴重なコードを提供していただき、本当にありがとう御座いました。

【56433】Re:条件分岐について
お礼  かずお  - 08/6/17(火) 11:56 -

引用なし
パスワード
   ひげくまさん ありがとうございます。

 セルにはなるべく式は入れずに値のみを入れたいのと、Functionプロシージャの
勉強もこれからという段階で本を見てまねながらですので、VBAの説明の表現力も乏しいと思っています。頑張りますので今後も宜しくお願い致します。

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