Gizport
1 回答
0
Share (facebook)
182
view
全般

度々で恐縮ですがリストボックスに表示されているリストを選択した時に ...

度々で恐縮ですがリストボックスに表示されているリストを選択した時に
選択されているリストを含む以下の件数をテキストボックスで表示させることは
可能でしょうか? 例 2012/07/07が選択されたら6枚と表示
2012/07/12が選択されたら1枚と表示


Private Sub UserForm_Initialize()

Me.StartUpPosition = 0
Me.Left = 586
Me.Top = 138

'タイトルを設定
Me.Caption = "印刷フォーム"
Label1.Caption = "日付リスト"
CommandButton1.Caption = "帳簿印刷"
CommandButton2.Caption = "帳票印刷"
CommandButton3.Caption = "請負印刷"
CommandButton4.Caption = "表紙印刷"
CommandButton5.Caption = "翌月更新"

Dim i As Long, j As Long, myItem, temp, myList()
Dim ws As Worksheet, r As Range

Set ws = Worksheets("入出金帳簿")

myItem = Application.WorksheetFunction.Transpose(ws.Range("L4:L24"))

i = 0
For Each r In ws.Range("B4", ws.Range("B" & Rows.Count).End(xlUp))
If InStr(1, Join(myItem, vbTab), r.Text) > 0 Then
If r.Text <> ws.Range("L5").Text Then
ReDim Preserve myList(i)
myList(i) = r.Offset(0, -1).Value
i = i + 1
End If
End If
Next r

For i = 0 To UBound(myList)
For j = UBound(myList) To i Step -1
If myList(i) > myList(j) Then
temp = myList(i)
myList(i) = myList(j)
myList(j) = temp
End If
Next j
Next i

With CreateObject("Scripting.Dictionary")
For i = 0 To UBound(myList)
.Item(myList(i)) = Empty
Next
ListBox1.List = .Keys
End With

End Sub






Private Sub CommandButton1_Click()
Dim tb As Control, flg As Boolean, Lrow As Long

flg = False

'入力や選択をチェック
For Each tb In Me.Controls

Select Case TypeName(tb)
Case "ListBox": flg = (tb.ListIndex = -1)
End Select

If flg Then
MsgBox "入力または選択を見直して下さい。", vbExclamation, "入力不備"
Exit Sub
End If

Next

'入力
With Worksheets("帳簿印刷")
.Activate
.Range("A1").Select
.Range("A1").Value = ListBox1.List(ListBox1.ListIndex, 0)
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1

End With



End Sub
Yahoo!知恵袋 4400日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
状況説明も殆ど無くコードをドンと載せるのは、コードを解析してやりたい事を推測して答えろという意味ですか?

画像も的を得ていない部分を載せていたり、小さすぎて見えなかったりであまり意味が無い場合が多いし、コードだって一部だけ載せても、他のイベントコードがどうなっているかわからないため、他のコードと干渉し合う事も考えられます。

私は専属の下請けじゃありません。
業務ソフトを構築したいなら、それなりのところに頼んでください。
既に掲示板でのやりとりで解決出来る範囲では無いと思います。

---

今後、リクエストされても答えないかも知れませんのであしからず。
一応、本件に関しては「こういう事かな」と推測して書いたサンプルを置いておきます。

テストマクロ2.xls
http://firestorage.jp/download/98e7098c3866a86548c9c9d04db0b6bb757f6f48
Yahoo!知恵袋 4399日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
70
Views
質問者が納得■補足への回答 その箇所に問題があろうことは、分かっています。 ですが、他のListBoxのコードと同じように記述していて、一部のListBoxだけ機能しないということは、コードの記述に問題があるわけではありません。 機能していない箇所はそこであっても、その要因は別の部分にあるのです。 他のコードが干渉しているのか、そもそもイベント発生の信号を受取れていないかだと思います。 ただ、先にも申し上げた通り、せめてブレークポイントを設定して、イベントが発生しているのかを確認する必要があります。 例えば、お腹が...
4386日前view70
全般
61
Views
質問者が納得状況説明も殆ど無くコードをドンと載せるのは、コードを解析してやりたい事を推測して答えろという意味ですか? 画像も的を得ていない部分を載せていたり、小さすぎて見えなかったりであまり意味が無い場合が多いし、コードだって一部だけ載せても、他のイベントコードがどうなっているかわからないため、他のコードと干渉し合う事も考えられます。 私は専属の下請けじゃありません。 業務ソフトを構築したいなら、それなりのところに頼んでください。 既に掲示板でのやりとりで解決出来る範囲では無いと思います。 --- 今後、リクエ...
4400日前view61
全般
72
Views
質問者が納得90人以上が見ても回答が無いのは、回答者に答えるスキルが不足しているのでは無く、ご質問の文章や表現などに問題があると考えた事はありませんか? 「まったく状況や内容を知らない人が読む」という観点で質問を読み返してみて下さい。果たして何人の人が望んでいる事を理解出来るでしょうか? 見ていない人に文章で伝えるのはかなり大変なことですし、特に文字数制限がある掲示板では尚更です。込み入った内容の質問であればあるほど伝えるのは容易ではありません。書いてもらったコードをコピペで載せるのではなく、読む人の環境で再現させ...
4433日前view72
全般
71
Views
質問者が納得何度かご質問にお答えした記憶はありますが、内容はまったく覚えてません。 質問歴を拝見すると同じようなソートの質問を何度かされているよう見受けられますが、コピペで動かないとまったく応用できないという事でしょうか? ロジック的にどうかなという気持ちもありますが、サンプルコードを UserForm_Initialize の End Select と End With の間に追加したら、とりあえず画像のようになりました。 '---省略--- End Select '----サンプル ここから--- i = 0...
4433日前view71
全般
71
Views
質問者が納得補足 そこまで、できてるのでしたら、あとは、goldswallow_stageさんの示したコードを多次元配列に応用するだけでソートできるかと思います。 Variant型の変数(今回は「範囲」という名前にしました)に対して、セル範囲をセットすると、(↓この行です) 範囲 = ws.Range("A4:D" & ws.Range("B" & Rows.Count).End(xlUp).Row) 範囲=セルA4:Dα範囲(αは入力済みのセル数)となるわけ...
4435日前view71

関連製品のQ&A