Excel VBA質問箱 IV

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

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


8947 / 13644 ツリー ←次へ | 前へ→

【29934】リスト選択からデータの移動 うくれれ 05/10/17(月) 2:00 質問[未読]
【29949】Re:リスト選択からデータの移動 小僧 05/10/17(月) 14:39 回答[未読]
【29998】Re:リスト選択からデータの移動 うくれれ 05/10/17(月) 23:13 発言[未読]
【30161】Re:リスト選択からデータの移動 うくれれ 05/10/20(木) 23:45 質問[未読]

【29934】リスト選択からデータの移動
質問  うくれれ  - 05/10/17(月) 2:00 -

引用なし
パスワード
   VBA初心者です。
以前にも似たような質問をしましたが、質問の仕方が悪かったのか回答がいただけなかったため再度ご質問させていただきます。

シートに以下のようなデータベースがあります。
   A   B     C   D  E  ・・・CX
1 



5 氏名  登録番号  発効日 項目1 項目2・・・項目n    
6 あああ  1111  170516  1   0     0
7 いいい  2222  170926  0   1     0

リストボックス上にシートのA5:Cnのデータを表示しています。
リストボックスの値を指定(複数指定可)してコマンドボタンクリックによりシート上の指定した対象行のデータを別シート(帳票)の指定場所に貼り付け、印刷することを考えています。

リストボックスからのデータの操作(コマンドボタンクリック〜貼り付けの部分)がどうしてもわかりません。
どうか教えてください。

【29949】Re:リスト選択からデータの移動
回答  小僧  - 05/10/17(月) 14:39 -

引用なし
パスワード
   ▼うくれれ さん:
こんにちは。

>以前にも似たような質問をしましたが、

[#29639] ですね。

>リストボックスの値を指定(複数指定可)してコマンドボタンクリックにより
>シート上の指定した対象行のデータを別シート(帳票)の指定場所に貼り付け

Private Sub CommandButton1_Click()
Dim SName1 As String
Dim SName2 As String
Dim lastRow As Long
Dim i As Long
Dim j As Long
Dim Cnt As Long
Dim Atai() As Variant
  
  SName1 = "データ"
  SName2 = "帳票"
  
  lastRow = Sheets(SName1).Range("A5").End(xlDown).Row
  
  j = 1
  For i = 1 To Me.ListBox1.ListCount
    If ListBox1.Selected(i - 1) = True Then
      ReDim Preserve Atai(1 To lastRow - 5, 1 To j)
        For Cnt = 1 To lastRow - 5
          Atai(Cnt, j) = Sheets(SName1).Cells(Cnt + 5, i)
        Next
      j = j + 1
    End If
  Next
  
  Sheets(SName2).Range("A1").Resize(UBound(Atai, 1), UBound(Atai, 2)).Value = Atai()
End Sub

リストボックスで選んだ列が SName2 で指定したシートに出力されると思います。

【29998】Re:リスト選択からデータの移動
発言  うくれれ  - 05/10/17(月) 23:13 -

引用なし
パスワード
   ありがとうございます!!
さっそくやってみます!

【30161】Re:リスト選択からデータの移動
質問  うくれれ  - 05/10/20(木) 23:45 -

引用なし
パスワード
   こんにちは。
教えていただいたやり方を試してみましたが、私の知識では理解できず私の作っているものに合わせることができませんでした。
ですので再度質問させていただきます。

リストボックスでMultiSelectプロパティで値を「2(拡張(連続)選択を許可する)」にしてます。

シート1に以下のような表があります(リストボックス上では5行目から表示)。
またシート2に帳票があります。
   A   B     C   D  E  ・・・CX
1 



5 氏名  登録番号  発効日 項目1 項目2・・・項目n    
6 あああ  1111  170516  1   0     0
7 いいい  2222  170926  0   1     0
8 ううう  3333  171020  0   0     1
  (以下随時追加される)

リストボックスで選択して(例えばシート1の6行目)コマンドボタンをクリックしたときに、

選択した行の
1.A6はシート2のA5
2.B6はシート2のB2
3.D6は値が1のときはH8〜J8の外枠に罫線を引く。
4.E6はシート上のテキストボックス1に値を入れる。
5.n6はシート上のテキストボックス2に値を入れる。
5.シート2の帳票を印刷
以下選択した行について繰り返し。

といったようなことは出来ますでしょうか。
よろしくおねがいします。

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