Excel VBA質問箱 IV

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

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


54 / 13272 ツリー ←次へ | 前へ→

【80339】ListView:行がどんどん増えてしまう 愛沢 19/1/27(日) 11:04 質問[未読]

【80346】Re:ListView:行がどんどん増えてしまう 愛沢 19/1/28(月) 6:51 発言[未読]
【80353】Re:ListView:行がどんどん増えてしまう マナ 19/1/30(水) 20:43 発言[未読]
【80368】Re:ListView:行がどんどん増えてしまう 愛沢 19/2/1(金) 23:59 お礼[未読]

【80346】Re:ListView:行がどんどん増えてしまう
発言  愛沢  - 19/1/28(月) 6:51 -

引用なし
パスワード
   ※行数削除の為 Noと名前のみになっておりますが、Publicの数だけデータがあります。
'========================================================
'標準モジュール
Public No As Long
Public 名前 As String
Public レベル As Long
Public 貢献度 As Long
Public In率 As String
Public 最大戦闘力 As Long
Public 新規登録日 As String
Public 最終更新日 As String
Public 備考 As String
Public CNT1 As Long
Public CNT2 As Long
Public CNT3 As Long
Public LastCNT1 As Long
Public LastCNT2 As Long
Public WS1 As Worksheet
Option Explicit
'-------------------------------------------------------------------
Sub auto_open()
  Call 初期処理
  団員一覧.Show
End Sub

Sub 初期処理()
  Set WS1 = ThisWorkbook.Worksheets("団員一覧")
  With 団員一覧.ListView1
    .View = lvwReport      ''表示
    .LabelEdit = lvwManual   ''ラベルの編集
    .HideSelection = False   ''選択の自動解除
    .AllowColumnReorder = True ''列幅の変更を許可
    .FullRowSelect = True    ''行全体を選択
    .Gridlines = True      ''グリッド線
    '列見出し
    .ColumnHeaders.Add , "No", "No", 50
    .ColumnHeaders.Add , "名前", "名前", 50
  End With
End Sub

Sub 団員一覧表示処理()
  LastCNT1 = WS1.Cells(Rows.Count, 1).End(xlUp).Row
  CNT1 = 2
    団員一覧.ListView1.ListItems.Clear
    For CNT2 = 1 To 99
      If CNT1 <= LastCNT1 Then
        If Cells(CNT1, 2) = "" Then
          GoTo 10
        Else
          Call 団員一覧書込処理
          CNT1 = CNT1 + 1
        End If
      Else
        GoTo 10
      End If
    Next
10
End Sub

Sub 団員一覧書込処理()
  With 団員一覧.ListView1.ListItems.Item
    .Text = Cells(CNT1, 1)
    .SubItems(1) = Cells(CNT1, 2)
  End With
End Sub

Sub 団員登録表示処理()
  With 団員登録
    .TextBox1 = No
    .TextBox2 = 名前
  End With
End Sub

Sub 団員登録更新処理()
  With 団員登録
    No = .TextBox1
    名前 = .TextBox2
  End With
  
  With 団員一覧.ListView1.ListItem
    .Text = No
    .SubItems(1) = 名前
  End With
End Sub

Sub 更新チェック()
'未着手
End Sub

'========================================================
'団員一覧フォーム
Private Sub CommandButton2_Click()
  Unload Me
End Sub

Private Sub CommandButton3_Click()
  Call 団員一覧表示処理
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  No = Item
  名前 = Item.SubItems(1)
  Call 団員登録表示処理
  団員登録.Show
End Sub

'========================================================
'団員登録フォーム
Private Sub CommandButton2_Click()
'  Call 更新チェック
  Unload Me
End Sub

Private Sub CommandButton3_Click()
  Call 団員登録更新処理
End Sub

Private Sub TextBox7_Change()
  TextBox7.Locked = True
End Sub
'========================================================

【80353】Re:ListView:行がどんどん増えてしまう
発言  マナ  - 19/1/30(水) 20:43 -

引用なし
パスワード
   ▼愛沢 さん:

>Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
>  No = Item
>  名前 = Item.SubItems(1)
>  Call 団員登録表示処理
>  団員登録.Show
>End Sub


呼び出しが多すぎてわかりにくいですが
こうではありませんか?


Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  No = Item
  名前 = Item.SubItems(1)
  Call 団員登録表示処理
  団員登録.Show
  Item = No
  Item.SubItems(1) = 名前
End Sub

【80368】Re:ListView:行がどんどん増えてしまう
お礼  愛沢  - 19/2/1(金) 23:59 -

引用なし
パスワード
   マナ様
ありがとうございます、愛沢です。

急な出張でマクロが弄れずお礼が遅くなった事をお詫びいたします。


>Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
>  No = Item
>  名前 = Item.SubItems(1)
>  Call 団員登録表示処理
>  団員登録.Show
>  Item = No
>  Item.SubItems(1) = 名前
>End Sub

に変えた所、引数は省略できません。で怒られました

Private Sub CommandButton3_Click()
  Call 団員登録更新処理
End Sub

コールで作成するのはもっと勉強してからにして今回はコールを使わずに作成してみようかと思います。

貴重なお時間ありがとうございました。

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