Excel VBA質問箱 IV

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

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


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

【47443】UserForm・ListBoxにおいて複数列のデータを個別にコピー貼り付けの方法 Masako 07/3/10(土) 9:12 質問[未読]
【47444】Re:UserForm・ListBoxにおいて複数列のデー... Hirofumi 07/3/10(土) 9:48 回答[未読]
【47447】Re:UserForm・ListBoxにおいて複数列のデー... Masako 07/3/10(土) 11:53 お礼[未読]

【47443】UserForm・ListBoxにおいて複数列のデータ...
質問  Masako  - 07/3/10(土) 9:12 -

引用なし
パスワード
   ListBoxに 2列の表示をさせています。
CommandButtonで、ListBox1の行選択した2列データを、指定したセルの位置に貼り付けたいのですが、個別の2列の選択が出来ません(同じ値が入ります・・・サンプルではE8F8共に222のデータになります)。
その方法を指導ください。

(元データ)    (仕上げたい状態)
  A   B    E   F
  項目1 項目2  ha1  ha2
8 111  221   112  222
9 112   222→→ 111  221
10 113  223   115  325
11 115  325
:  :    :
:  :    :

Private Sub UserForm_Initialize()
  With ListBox1
    .ColumnCount = 2
    .ColumnWidths = "27;27"
    .ColumnHeads = True
    .RowSource = "A8:B" & Cells(Rows.Count, 2).End(xlUp).Row
    .ControlSource = "G7"
    .BoundColumn = 1
    .BoundColumn = 2
    .BoundColumn = 0
   End With
End Sub
'・・・・・・・・・・・・・・・
Private Sub CommandButton1_Click()
   Range("D" & 65536).End(xlUp).Offset(1) = ListBox1.Value
   Range("E" & 65536).End(xlUp).Offset(1) = ListBox1.Value
   '→E列にBoundColumn = 2のデータを貼り付けたいのですが・・・
   '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   'どのようにコードを書けばよいでしょうか?
End Sub
'・・・・・・・・・・・・・・・
Sub Hyouji()
 Range("G7").Clear
 UserForm1.Show 0
End Sub
  'またG7にはBoundColumn = 0を表示したいのですが・・・
  '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  'どのようにコードを書けばよいのでしょうか?

よろしくお願いします。

【47444】Re:UserForm・ListBoxにおいて複数列のデ...
回答  Hirofumi  - 07/3/10(土) 9:48 -

引用なし
パスワード
   今一意味が?ですがこんな事かな?

Option Explicit

Private Sub UserForm_Initialize()

  With ListBox1
    .ColumnCount = 2
    .ColumnWidths = "27;27"
    .ColumnHeads = True
    .RowSource = "A8:B" & Cells(Rows.Count, 2).End(xlUp).Row
    .ControlSource = "G7"
'    .BoundColumn = 1
'    .BoundColumn = 2
    .BoundColumn = 0
   End With
  
End Sub

Private Sub CommandButton1_Click()

'   Range("D" & 65536).End(xlUp).Offset(1) = ListBox1.Value
'   Range("E" & 65536).End(xlUp).Offset(1) = ListBox1.Value
   '→E列にBoundColumn = 2のデータを貼り付けたいのですが・・・
   '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   'どのようにコードを書けばよいでしょうか?
  
  Dim rngMark As Range
  
  Set rngMark = Range("D" & 65536).End(xlUp).Offset(1)
  
  With ListBox1
    rngMark.Value = .List(.ListIndex, 0)
    rngMark.Offset(, 1).Value = .List(.ListIndex, 1)
  End With
  
  Set rngMark = Nothing
  
End Sub

【47447】Re:UserForm・ListBoxにおいて複数列のデ...
お礼  Masako  - 07/3/10(土) 11:53 -

引用なし
パスワード
   ▼Hirofumi さん:
早速ご解答有難うございます。

>今一意味が?ですがこんな事かな?
説明が十分できていないにもかかわらず、やりたいことが出来ました。

本当に助かりました。このコードを記憶しておきます。
これからもよろしくお願いします。
失礼します

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