teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

要点のまとめ

2018/12/21 12:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,17 @@
4
4
  ・それぞれに入るデータはD&Dで行き来することができる
5
5
  というフォームを作りたいと考えています。
6
6
 
7
+ .ColumnHeaders.Addメソッドに渡したい要素は決まっており、
8
+ ListViewが増えても同じ処理をすることになる。
9
+
10
+ それぞれのListViewオブジェクトに一つずつAddしていくのは冗長なので、
11
+ Addする内容はどこかでまとめて
12
+ ListViewオブジェクトが生成されたら最初から適用するようにしたい。
13
+
14
+ - で、実際なんて書いたらいいの?
15
+
16
+ というのが本質問です。
17
+
7
18
  ![D&Dでデータを移動することが出来るListViewコントロールを使ったVBAフォーム](5e55f0b0fd46398b33fc25437e6f26e3.png)
8
19
 
9
20
 
@@ -54,9 +65,6 @@
54
65
 
55
66
  ~~オブジェクト名以外はすべて同じなので共通化したいのですが、具体的にどのような記述、処理をすればいいのでしょうか?~~
56
67
 
57
- 自分のやりたいことを説明するための言葉が分からず、何を調べたらいいのやら。。
58
- とそんな感じで難航しています。
59
-
60
68
  D&Dする処理はまだ考えていません。
61
69
 
62
70
  クラスモジュールを使った経験もなく、自力ではまだまだ冗長でスパゲッティな関数型コードしか書けないため、質問させて頂きました。

1

コードの追加,補足の追加,誤字の訂正

2018/12/21 12:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,9 +7,56 @@
7
7
  ![D&Dでデータを移動することが出来るListViewコントロールを使ったVBAフォーム](5e55f0b0fd46398b33fc25437e6f26e3.png)
8
8
 
9
9
 
10
- このプロジェクトではListView1~3を用意し、それぞれでColumnHeades.Addしているため、どう考えても無駄です。
10
+ このプロジェクトではListView1~3を用意し、それぞれでColumnHeaders.Addしているため、どう考えても無駄です。
11
+ ```VBA
11
- オブジェクト名以外はすべて同じなので共通化したいのですが、具体的にどのような記述、処理をすればいいのでしょうか?
12
+ Private Sub UserForm_Initialize()
12
13
 
14
+ With ListView1
15
+ .ColumnHeaders.Add , "Lot", "LOT No.", 40
16
+ .ColumnHeaders.Add , "Thickness", "THI", 25, lvwColumnRight
17
+ .ColumnHeaders.Add , "Length", "LENGTH", 45, lvwColumnRight
18
+ .ColumnHeaders.Add , "Width", "WIDTH", 40, lvwColumnRight
19
+ '他に幅ゼロで追加される要素が10個程(見る側、操作する側には必要のない項目)
20
+ '.ColumnHeaders.Add , "○○", "●●", 0, lvwColumnRight
21
+
22
+ 'とりあえず見た目獲得のために入れてます
23
+ With .ListItems.Add
24
+ .Text = "T47-1"
25
+ .SubItems(1) = 15
26
+ .SubItems(2) = 2445
27
+ .SubItems(3) = 1225
28
+ .SubItems(4) = "L"
29
+ '.....
30
+ End With
31
+
32
+ With .ListItems.Add
33
+ .Text = "T47-2"
34
+ .SubItems(1) = 12
35
+ .SubItems(2) = 2450
36
+ .SubItems(3) = 920
37
+ End With
38
+
39
+ With ListView2
40
+ 'ListView1と同じく十数行...
41
+ End With
42
+
43
+ With ListView3
44
+ 'ListView1と同じく十数行...
45
+ End With
46
+
47
+ End With
48
+ ```
49
+ - ↑このままではFunctionに書き逃がしてもそのままでしかない
50
+ ```VBA
51
+ .ColumnHeaders.Add , "○○", "●●", 0, lvwColumnRight
52
+ ```
53
+ - ↑ListViewを増やしても、これは変わらないのでどこか1箇所で宣言しておきたい
54
+
55
+ ~~オブジェクト名以外はすべて同じなので共通化したいのですが、具体的にどのような記述、処理をすればいいのでしょうか?~~
56
+
57
+ 自分のやりたいことを説明するための言葉が分からず、何を調べたらいいのやら。。
58
+ とそんな感じで難航しています。
59
+
13
60
  D&Dする処理はまだ考えていません。
14
61
 
15
62
  クラスモジュールを使った経験もなく、自力ではまだまだ冗長でスパゲッティな関数型コードしか書けないため、質問させて頂きました。