Excel VBA質問箱 IV

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

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


8515 / 13646 ツリー ←次へ | 前へ→

【32832】Resizeの使い方 わさび 05/12/23(金) 10:43 質問[未読]
【32833】Re:Resizeの使い方 ichinose 05/12/23(金) 11:06 発言[未読]
【32834】Re:Resizeの使い方 わさび 05/12/23(金) 11:15 お礼[未読]
【32835】Re:Resizeの使い方 訂正 ichinose 05/12/23(金) 11:30 発言[未読]
【32836】Re:Resizeの使い方 訂正 わさび 05/12/23(金) 11:35 お礼[未読]

【32832】Resizeの使い方
質問  わさび  - 05/12/23(金) 10:43 -

引用なし
パスワード
   いつもお世話になっております。

今、Worksheets("リスト")にある表の値を、
Worksheets("メンバー別")のセルに入れたいのですが、
Worksheets("リスト")には、2列で1セットの表がいくつかあるので、
Worksheets("リスト").Range("B3")に、
使用したいリストの左の列を入力することで選択してもらおうと考えてます。

Worksheets("リスト")にある表は必ず6行目以降にあります。
Worksheets("メンバー別")では必ずA列とB列の5行目以降に値を入れます。

そこで以下のコードを作成し、試しにRange("B3")に「A」をいれて、
Worksheets("リスト")のA列とB列の表にある値を、
Worksheets("メンバー別")に入れようとしたのですが、
実行したところ、Worksheets("メンバー別")のA列とB列の両方に同じ値…
Worksheets("リスト")のA列の値が入ってしまいました。

Resizeの使い方をいまいちよくわかってないのですが、
どこが悪いのか、もしくはもっといい方法をどうかご指南ください。
宜しくお願い致します。


----------
Sub Member_List()

 Dim LASTrow As String, sldLIST As String
 sldLIST = Worksheets("リスト").Range("B3").Value
 LASTrow = Worksheets("リスト").Range(sldLIST & "65536").End(xlUp).Row

 Worksheets("メンバー別").Range("A5:B" & LASTrow - 1).Value = _
 Worksheets("リスト").Range(sldLIST & "6:" _
  & sldLIST & LASTrow).Resize(, 1).Value
  
End Sub
----------

【32833】Re:Resizeの使い方
発言  ichinose  - 05/12/23(金) 11:06 -

引用なし
パスワード
   ▼わさび さん:
こんにちは。

>
>今、Worksheets("リスト")にある表の値を、
>Worksheets("メンバー別")のセルに入れたいのですが、
>Worksheets("リスト")には、2列で1セットの表がいくつかあるので、
>Worksheets("リスト").Range("B3")に、
>使用したいリストの左の列を入力することで選択してもらおうと考えてます。
>
>Worksheets("リスト")にある表は必ず6行目以降にあります。
>Worksheets("メンバー別")では必ずA列とB列の5行目以降に値を入れます。
>
>そこで以下のコードを作成し、試しにRange("B3")に「A」をいれて、
>Worksheets("リスト")のA列とB列の表にある値を、
>Worksheets("メンバー別")に入れようとしたのですが、
>実行したところ、Worksheets("メンバー別")のA列とB列の両方に同じ値…
>Worksheets("リスト")のA列の値が入ってしまいました。
>
>Resizeの使い方をいまいちよくわかってないのですが、
>どこが悪いのか、もしくはもっといい方法をどうかご指南ください。
>宜しくお願い致します。
>
>
>----------
>Sub Member_List()
>
> Dim LASTrow As String, sldLIST As String
> sldLIST = Worksheets("リスト").Range("B3").Value
> LASTrow = Worksheets("リスト").Range(sldLIST & "65536").End(xlUp).Row
>
> Worksheets("メンバー別").Range("A5:B" & LASTrow - 1).Value = _
 Worksheets("リスト").Range(sldLIST & "6:" _
  & sldLIST & LASTrow).Resize(, 2).Value
>  
>End Sub
>----------

これです。
Resizeはセル範囲を広げるメソッドです。
range("a1:a10").resize(,1)だと列数は元々ひとつですから、
セル範囲が広がっていません。
この場合、A,B列に同じ値が入ってしまいます。

【32834】Re:Resizeの使い方
お礼  わさび  - 05/12/23(金) 11:15 -

引用なし
パスワード
   >Resizeはセル範囲を広げるメソッドです。
>range("a1:a10").resize(,1)だと列数は元々ひとつですから、
>セル範囲が広がっていません。

なるほど!! Resizeはそう使うんですね!!
おかげで無事解決しました。
ありがとうございました〜!!

【32835】Re:Resizeの使い方 訂正
発言  ichinose  - 05/12/23(金) 11:30 -

引用なし
パスワード
   ▼わさび さん:
>>Resizeはセル範囲を広げるメソッドです。
これ違うね!!その名のとおり、セル範囲を変更するメソッドですね。
減らすこともできますからね!!

【32836】Re:Resizeの使い方 訂正
お礼  わさび  - 05/12/23(金) 11:35 -

引用なし
パスワード
   ▼ichinose さん:
>>>Resizeはセル範囲を広げるメソッドです。
>これ違うね!!その名のとおり、セル範囲を変更するメソッドですね。
>減らすこともできますからね!!

おーっと、なるほどです。
わざわざ訂正いただき、ありがとうございました!

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